【Vegas原创】sendkeys实例
需求:将excel档更新提醒关闭,并另存为a*.xls.
dim wsh
set wsh=wscript.createobject("wscript.shell")
wsh.run "每日生產狀況表.xls"
wscript.sleep 1000
wsh.sendkeys "{RIGHT}"
wscript.sleep 100
wsh.sendkeys "{enter}"
wscript.sleep 100
wsh.sendkeys "%EK"
wscript.sleep 100
wsh.sendkeys "%S"
wscript.sleep 100
wsh.sendkeys "{UP}"
wscript.sleep 100
wsh.sendkeys "{enter}"
wscript.sleep 100
wsh.sendkeys "%L"
wscript.sleep 100
wsh.sendkeys "%FA"
wscript.sleep 100
wsh.sendkeys "{Left}"
wscript.sleep 100
wsh.sendkeys "a"
wscript.sleep 100
wsh.sendkeys "{enter}"
wscript.sleep 100
wsh.sendkeys "^Y"
wscript.sleep 100
wsh.sendkeys "%FX"
set wsh=wscript.createobject("wscript.shell")
wsh.run "每日生產狀況表.xls"
wscript.sleep 1000
wsh.sendkeys "{RIGHT}"
wscript.sleep 100
wsh.sendkeys "{enter}"
wscript.sleep 100
wsh.sendkeys "%EK"
wscript.sleep 100
wsh.sendkeys "%S"
wscript.sleep 100
wsh.sendkeys "{UP}"
wscript.sleep 100
wsh.sendkeys "{enter}"
wscript.sleep 100
wsh.sendkeys "%L"
wscript.sleep 100
wsh.sendkeys "%FA"
wscript.sleep 100
wsh.sendkeys "{Left}"
wscript.sleep 100
wsh.sendkeys "a"
wscript.sleep 100
wsh.sendkeys "{enter}"
wscript.sleep 100
wsh.sendkeys "^Y"
wscript.sleep 100
wsh.sendkeys "%FX"
详解:
Private Sub CmdBack_Click() '发送多个相同字符以及多个功能键
TxtStr.SetFocus
SendKeys "{余 10}", True '向文本框中发送10个余字,并等待其执行完毕
MsgBox "已添加了10个""余""字,要删除咯!", 64 '提示信息
TxtStr.SetFocus '这一句不是一定要,但为了除止意外,比如msgbox时你把焦点移到了TxtStr之外,在程序中,我们要防止任何可能的错误
SendKeys "{BackSpace 10}" '发送10次Back键
End Sub
Private Sub CmdNote_Click() '发送组合键
Shell "notepad", vbMaximizedFocus '调用激活记事本程序
SendKeys "小丽,天天开心才乖哦!~{F5}", True '发送字符串,其中还有个换行符(在这里可以回车可以当成换行符),注意"~"这个符号代表了回车(Enter),{F5},发送F5到notepad,它将自动插入一个时间
SendKeys "%{F4}", True '发其发送一个关闭的消息 Alt + F4
SendKeys "y", True '发送Y表示保存
Randomize '初始化随机数生成器
SendKeys "小丽无敌" & Str(Int(Rnd * 10000)), True '文件名
SendKeys "~", True '发送回车键 (效果相当于点了确定)
End Sub
Private Sub CmdTaskmgr_Click() '发送功能键
On Error Resume Next '此处用此语句是为了防止第五行发生错误,比如弹出对话框时,你关闭了任务管理器,就会发生错误.你可以把这一行打上注释之后看效果
Shell "taskmgr.exe", vbNormalFocus '调用任务管理器
MsgBox "看好了!要关闭咯!", 64 '提示信息,此处注意,老公每个程序里的msgbox 都带了图标哦!这是个必须养成的习惯
AppActivate "Windows 任务管理器" '激活作务管理器窗口,以备发送按键
SendKeys "{Esc}", True '发送 ESC 键,任务管理器收到后将关闭
AppActivate Me.Caption '激活程序窗口
End Sub
Private Sub CmdText_Click() '发送普通文本
TxtStr.SetFocus '使文本框得到焦点
SendKeys "小丽要天天开心哦{~} {(} 哈哈 {)}" '发送以下字符到文本框,发送字符串不需要特殊的格式,只要在此处输入文本即可
' + ^ % ~ { } ( ) 这些字符是不是允许直接发送的,如确实需要发送,可以将它们用{}括起来
'注意,"[]"如果当成字符来发送时,可以不放在{}中,但如果当成按键来发送,就必须放在{}中,一般都放在{}中
End Sub
'还有几点小常识,以前老公没给你说过
#17 例如我想在msgbox 中显示以下的内容
' 小丽,嘿嘿,"这"是一个例子.
'注意其中的双引号,如果确实需要英文件双引号,则应该用两个双引号来代替,代码如下
'msgbox "小丽,嘿嘿,""这""是一个例子.",64
'另外在很多程序中,有可以用 Alt + 某键 来激活的菜单及按钮
'具体的实现方法是用 "&" 这个符号来实现此功能,即给那些菜单和按钮中的字符加上下划线,例如以下代码
'窗体上有一个Command1,当按下 Alt + X 时,可以触发它的单击事件,为何是X?因为它在以下程序中是 "&" 符后的第一个字母
'不管放在字符串的中间还是开头结尾,其效果都是一样滴.
'如果确实需要在程序中加入"&"这个符号,而不让其它字符带下划线,可以用两个"&"来代替
'private sub form_load()
'command1.caption = "&XCommandButton"
'end sub
'private sub command1_click()
'msgbox "小丽触发了此按钮的单击事件~ ^_^ ",64
'end sub
TxtStr.SetFocus
SendKeys "{余 10}", True '向文本框中发送10个余字,并等待其执行完毕
MsgBox "已添加了10个""余""字,要删除咯!", 64 '提示信息
TxtStr.SetFocus '这一句不是一定要,但为了除止意外,比如msgbox时你把焦点移到了TxtStr之外,在程序中,我们要防止任何可能的错误
SendKeys "{BackSpace 10}" '发送10次Back键
End Sub
Private Sub CmdNote_Click() '发送组合键
Shell "notepad", vbMaximizedFocus '调用激活记事本程序
SendKeys "小丽,天天开心才乖哦!~{F5}", True '发送字符串,其中还有个换行符(在这里可以回车可以当成换行符),注意"~"这个符号代表了回车(Enter),{F5},发送F5到notepad,它将自动插入一个时间
SendKeys "%{F4}", True '发其发送一个关闭的消息 Alt + F4
SendKeys "y", True '发送Y表示保存
Randomize '初始化随机数生成器
SendKeys "小丽无敌" & Str(Int(Rnd * 10000)), True '文件名
SendKeys "~", True '发送回车键 (效果相当于点了确定)
End Sub
Private Sub CmdTaskmgr_Click() '发送功能键
On Error Resume Next '此处用此语句是为了防止第五行发生错误,比如弹出对话框时,你关闭了任务管理器,就会发生错误.你可以把这一行打上注释之后看效果
Shell "taskmgr.exe", vbNormalFocus '调用任务管理器
MsgBox "看好了!要关闭咯!", 64 '提示信息,此处注意,老公每个程序里的msgbox 都带了图标哦!这是个必须养成的习惯
AppActivate "Windows 任务管理器" '激活作务管理器窗口,以备发送按键
SendKeys "{Esc}", True '发送 ESC 键,任务管理器收到后将关闭
AppActivate Me.Caption '激活程序窗口
End Sub
Private Sub CmdText_Click() '发送普通文本
TxtStr.SetFocus '使文本框得到焦点
SendKeys "小丽要天天开心哦{~} {(} 哈哈 {)}" '发送以下字符到文本框,发送字符串不需要特殊的格式,只要在此处输入文本即可
' + ^ % ~ { } ( ) 这些字符是不是允许直接发送的,如确实需要发送,可以将它们用{}括起来
'注意,"[]"如果当成字符来发送时,可以不放在{}中,但如果当成按键来发送,就必须放在{}中,一般都放在{}中
End Sub
'还有几点小常识,以前老公没给你说过
![](https://www.cnblogs.com/Images/dot.gif)
' 小丽,嘿嘿,"这"是一个例子.
'注意其中的双引号,如果确实需要英文件双引号,则应该用两个双引号来代替,代码如下
'msgbox "小丽,嘿嘿,""这""是一个例子.",64
'另外在很多程序中,有可以用 Alt + 某键 来激活的菜单及按钮
'具体的实现方法是用 "&" 这个符号来实现此功能,即给那些菜单和按钮中的字符加上下划线,例如以下代码
'窗体上有一个Command1,当按下 Alt + X 时,可以触发它的单击事件,为何是X?因为它在以下程序中是 "&" 符后的第一个字母
'不管放在字符串的中间还是开头结尾,其效果都是一样滴.
'如果确实需要在程序中加入"&"这个符号,而不让其它字符带下划线,可以用两个"&"来代替
'private sub form_load()
'command1.caption = "&XCommandButton"
'end sub
'private sub command1_click()
'msgbox "小丽触发了此按钮的单击事件~ ^_^ ",64
'end sub
将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。
语法
SendKeys string[, wait]
SendKeys 语句的语法具有以下几个命名参数:
string 必需的。字符串表达式,指定要发送的按键消息。
Wait 可选的。指定等待方式的 BooleandefBooleanDataType@veendf98.chm 值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程。如果为 True,则按键消息必须在控件返回到过程之前加以处理。
说明
每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 "A" 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用 "ABC" 作为 string。
对 SendKeys 来说,加号 (+)、插入符 (^)、百分比符号 (%)、上划线 (~) 及圆括号 ( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号 ({}) 当中。例如,要指定正号,可用 {+} 表示。方括号 ([ ]) 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。为了指定大括号字符,请使用 {{} 及 {}}。
为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键
为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。
为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。
注意 不能用 SendKeys 将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在 Microsoft Windows 中运行。Sendkeys 也无法将 PRINT SCREEN 按键 {PRTS
C} 发送到任何应用程序.
语法
SendKeys string[, wait]
SendKeys 语句的语法具有以下几个命名参数:
string 必需的。字符串表达式,指定要发送的按键消息。
Wait 可选的。指定等待方式的 BooleandefBooleanDataType@veendf98.chm 值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程。如果为 True,则按键消息必须在控件返回到过程之前加以处理。
说明
每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 "A" 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用 "ABC" 作为 string。
对 SendKeys 来说,加号 (+)、插入符 (^)、百分比符号 (%)、上划线 (~) 及圆括号 ( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号 ({}) 当中。例如,要指定正号,可用 {+} 表示。方括号 ([ ]) 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。为了指定大括号字符,请使用 {{} 及 {}}。
为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键
为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。
为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。
注意 不能用 SendKeys 将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在 Microsoft Windows 中运行。Sendkeys 也无法将 PRINT SCREEN 按键 {PRTS
C} 发送到任何应用程序.
喜欢请赞赏一下啦^_^
![](https://images.cnblogs.com/cnblogs_com/amadeuslee/1997630/o_21070809243911.jpg)