VBS + SendKeys 方法
將一個或多個鍵擊發送到活動窗口(仿佛是在鍵盤上擊鍵一樣)。
object.SendKeys(string)參數
object
WshShell 對象。
string
表示要發送的鍵擊(一個或多個)的字符串值。
說明
使用 SendKeys 方法可以將鍵擊發送到無自動化界面的應用程序中。多數鍵盤字符都可用一個鍵擊表示。某些鍵盤字符由多個鍵擊組合而成(例如,CTRL+SHIFT+HOME)。要發送單個鍵盤字符,請將字符本身作為?string?參數發送。例如,要發送字母 x,則請發送?string?參數 "x"。
注意???要發送空格,則請發送字符串 " "。可使用 SendKeys 同時發送多個鍵擊。為此,可將每個鍵擊按順序排列在一起,以此來創建表示一系列鍵擊的復合字符串參數。例如,要發送鍵擊 a、b 和 c,則需要發送字符串參數 "abc"。SendKeys 方法將某些字符用作字符的修飾符(而不使用其本身的含義)。這組特殊的字符可包括圓括號、中括號、大括號,以及:
- 加號???????"+"、
- 插入記號?????????????"^"、
- 百分號 "%"、
- 和“非”符號???????"~"。
用大括號 "{}" 括起這些字符可以發送它們。例如,要發送加號,請使用字符串參數 "{+}"。SendKeys中使用的中括號 "[ ]" 無任何特殊含義,但是必須把它們括在大括號中,以便容納確實要賦予其特殊含義的應用程序(例如,對于動態數據交換 (DDE) 就是這樣)。
- 要發送左中括號字符,請發送字符串參數 "{[]";要發送右中括號字符,請發送字符串參數 "{]}"。
- 要發送左大括號字符,請發送字符串參數 "{{}";要發送右大括號字符,請發送字符串參數 "{}}"。
某些鍵擊不生成字符(如 ENTER 和 TAB)。某些鍵擊表示操作(如 BACKSPACE 和 BREAK)。要發送這些類型的鍵擊,請發送下表中列出的參數:
| 退格鍵 | {BACKSPACE}、{BS} 或 {BKSP} |
| BREAK | {BREAK} |
| CAPS LOCK | {CAPSLOCK} |
| DEL 或 DELETE | {DELETE} 或 {DEL} |
| 向下鍵 | {DOWN} |
| END | {END} |
| ENTER | {ENTER} 或 ~ |
| ESC | {ESC} |
| HELP | {HELP} |
| HOME | {HOME} |
| INS 或 INSERT | {INSERT} 或 {INS} |
| 向左鍵 | {LEFT} |
| NUM LOCK | {NUMLOCK} |
| PAGE DOWN | {PGDN} |
| PAGE UP | {PGUP} |
| PRINT SCREEN | {PRTSC} |
| 向右鍵 | {RIGHT} |
| SCROLL LOCK | {SCROLLLOCK} |
| TAB | {TAB} |
| 向上鍵 | {UP} |
| F1 | {F1} |
| F2 | {F2} |
| F3 | {F3} |
| F4 | {F4} |
| F5 | {F5} |
| F6 | {F6} |
| F7 | {F7} |
| F8 | {F8} |
| F9 | {F9} |
| F10 | {F10} |
| F11 | {F11} |
| F12 | {F12} |
| F13 | {F13} |
| F14 | {F14} |
| F15 | {F15} |
| F16 | {F16} |
要發送由常規鍵擊和 SHIFT、CTRL 或 ALT 組合而成的鍵盤字符,請創建表示該鍵擊組合的復合字符串參數。可通過在常規鍵擊之前添加一個或多個以下特殊字符來完成上述操作:
| SHIFT | + |
| CTRL | ^ |
| ALT | % |
要指定在按下多個其他鍵時,按下 SHIFT、CTRL 和 ALT 的組合,請創建復合字符串參數,用括號括起其中的組合鍵。例如,要發送的組合鍵指定:
- 如果在按 e 和 c 的同時按 SHIFT 鍵,則發送字符串參數 "+(ec)"。
- 如果在按 e 時只按 c(而不按 SHIFT),則發送字符串參數 "+ec"。
可使用 SendKeys 方法發送一種在一行內重復按鍵的鍵擊。為此,要創建復合字符串參數,以指定要重復的鍵擊,并在其后指定重復次數。可使用 {鍵擊 數字} 形式的復合字符串參數來完成上述操作。例如,如果要發送 10 次 "x",則需要發送字符串參數 "{x 10}"。請確保在鍵擊和數字之間有一個空格。
注意???只可以發送重復按一個鍵的鍵擊。例如,可以發送 10 次 "x",但不可發送 10 次 "Ctrl+x"。 注意???不能向應用程序發送 PRINT SCREEN 鍵 {PRTSC}。示例
下面的示例演示如何將一個 .wsf 文件用于以不同腳本語言(VBScript 和 Jscript)寫成的兩個作業。每個作業都運行 Windows 計算器并將它發送給鍵擊以執行簡單的計算。
<package><job id="vbs"><script language="VBScript">set WshShell = WScript.CreateObject("WScript.Shell")WshShell.Run "calc"WScript.Sleep 100WshShell.AppActivate "Calculator"WScript.Sleep 100WshShell.SendKeys "1{+}"WScript.Sleep 500WshShell.SendKeys "2"WScript.Sleep 500WshShell.SendKeys "~"WScript.Sleep 500WshShell.SendKeys "*3"WScript.Sleep 500WshShell.SendKeys "~"WScript.Sleep 2500</script></job><job id="js"><script language="JScript">var WshShell = WScript.CreateObject("WScript.Shell");WshShell.Run("calc");WScript.Sleep(100);WshShell.AppActivate("Calculator");WScript.Sleep(100);WshShell.SendKeys ("1{+}");WScript.Sleep(500);WshShell.SendKeys("2");WScript.Sleep(500);WshShell.SendKeys("~");WScript.Sleep(500);WshShell.SendKeys("*3");WScript.Sleep(500);WshShell.SendKeys("~");WScript.Sleep(2500);</script></job> </package>總結
以上是生活随笔為你收集整理的VBS + SendKeys 方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机哪所民办学校好,哪所民办高校计算机
- 下一篇: TVB经典电视剧--《创世纪》回忆