其使用格式為:
object.SendKeys string
"object":表示WshShell對象
"string":表示要發送的按鍵指令字符串,需要放在英文雙引號中.
1.基本鍵
一般來說,要發送的按鍵指令都可以直接用該按鍵字符本身來表示,例如要發送字母"x",使用
WshShell.SendKeys "x" 即可.
也可直接發送多個按鍵指令,只需要將按鍵字符按順序排列在一起即可.例如,要發送按鍵"cfan",可以使用" WshShell.SendKeys "cfan" ".
2.特殊功能鍵
對于需要與Shift、Ctrl、Alt三個控制鍵組合的按鍵SendKeys使用特殊字符來表示:
特殊控制鍵 特殊字符
Shift +
Ctrl ^
Alt %
如要發送的組合按鍵是同時按下Ctrl+E,需要用" WshShell.SendKeys "^e" "表示,
如果要發送的組合按鍵是按住Ctrl鍵的同時按下E與C兩個鍵,這時應使用小括號把字母括起來,書寫格式為" WshShell.SendKeys "^(ec)" ".這里要注意它與" WshShell.SendKeys "^ec" "的區別,后者表示組合按鍵是同時按住Ctrl和E鍵,然后松開Ctrl鍵,單獨按下"C"字母鍵
由于"+"、"^"這些字符用來表示特殊的控制按鍵了,如何表示這些按鍵呢?只要用大括號括住這些字符即可.例如,要發送加號"+",可使用" WshShell.SendKeys "{+}" ".另外對于一些不會生成字符的控制功能按鍵,也同樣需要使用大括號括起來按鍵號名稱,例如要發送回車鍵,需要用" WshShell.SendKeys "{ENTER}" "表示,發送向下的方向鍵用" WshShell.SendKeys "{DOWN}" "表示.
小提示
如果需要發送多個重復的單字母按鍵,不必重復輸入該字母,SendKdys允許使用簡化格式進行描述,使用格式為"{按鍵 數字}".例如要發送10個字母"x",則輸入" WshShell.SendKeys "{x 10}" "即可.
3.翻譯上手實例
" WshShell.SendKeys "^{ESC}u" "這句翻譯為:按下Ctrl+Esc組合鍵(相當于按Win鍵)打開"開始"菜單,按著按U鍵打開"關機"菜單.
---Just Do It---------------------------------
讓VBS腳本自動在詞本中輸入一行文字"Hello, welcome to cfan".
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate " 無標題 - 記事本 "
WshShell.SendKeys "hello, welcome to cfan"
我們最常用的記事本沒有Word、WPS那樣的自動定時存盤功能,其實利用VBS腳本再加上SendKeys命令,就能彌補這個遺憾.打開記事本,輸入以下內容(以容易描述和分析,把代碼分為四個部分):
'第一部分:定義變量和對象
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=300000
Set WshShell=WScript.CreateObject("WScript.Shell")
TXTFileName=InputBox("請輸入你要創建的文件名(不能用中文和純數字):")
'第二部分:打開并激活記事本
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate "無標題 - 記事本"
'第三部分:用輸入的文件名存盤
WshShell.SendKeys "^s"
WScript.Sleep 300