set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "{F1}"
WshShell.SendKeys "{F2}"
WshShell.SendKeys "{F3}"
WshShell.SendKeys "{F4}"
WshShell.SendKeys "{F5}"
WshShell.SendKeys "{F6}"
WshShell.SendKeys "{F7}"
WshShell.SendKeys "{F8}"
WshShell.SendKeys "{F9}"
WshShell.SendKeys "{F10}"
WshShell.SendKeys "{F11}"
WshShell.SendKeys "{F12}"
SendKeys 方法
請參閱
WshShell 對象 | Run 方法
將壹個或多個鍵擊發送到活動窗口(仿佛是在鍵盤上擊鍵壹樣)。
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 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>
<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>