需求:将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
' 还有几点小常识,以前老公没给你说过#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
将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。
语法
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} 发送到任何应用程序.