我們可以使用 sendKeys() 函數來傳送鍵盤事件,這是一個很強大的功能,任何軟體只要能夠支援使用熱鍵來操作,我們就可以使用 WSH 來達到一模一樣的功能。
在下面這個範例,我們開啟 IE 並執行列印的動作:
請注意在上述範例中,
- WshShell.SendKeys("%{f}") 代表執行 Alt-f 按鍵,WshShell.SendKeys("p") 代表執行按鍵 p,而 WshShell.SendKeys("{ENTER}") 代表執行按鍵 Enter,依此類推。
- 我們插進去了好幾列 WScript.Sleep(5000),就是希望在按鍵後,先等候 5 秒鐘,以便使整過操作過程更加穩定。
- 在程式碼執行過程中,請勿點選其他視窗,以避免鍵盤事件被送到錯誤的視窗。
以下列出一些特殊按鍵的相關呼叫方式:
按鑑 | 呼叫方式
| SHIFT | +
| CONTROL | ^
| ALT | %
| LEFT ARROW | {LEFT}
| RIGHT ARROW | {RIGHT}
| UP ARROW | {UP}
| DOWN ARROW | {DOWN}
| { | {{}
| } | {}}
| [ | {[}
| ] | {]}
| ~ | {~}
| + | {+}
| ^ | {^}
| % | {%}
|
|
按鑑 | 呼叫方式
| BACKSPACE | {BACKSPACE}, {BS}, or {BKSP}
| BREAK | {BREAK}
| CAPS LOCK | {CAPSLOCK}
| DEL or DELETE | {DELETE} or {DEL}
| END | {END}
| ENTER | {ENTER} or ~
| ESC | {ESC}
| HELP | {HELP}
| HOME | {HOME}
| INS or INSERT | {INSERT} or {INS}
| NUM LOCK | {NUMLOCK}
| PAGE DOWN | {PGDN}
| PAGE UP | {PGUP}
| PRINT SCREEN | {PRTSC}
| SCROLL LOCK | {SCROLLLOCK}
| TAB | {TAB}
|
|
按鑑 | 呼叫方式
| 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}
|
|
我們也可以開啟記事本並寫入文字:
上述範例是一個很有趣的範例,讀者一定要親自試看看,才能體會使用WSH的「傳送鍵盤事件」可以達到的強大功能!
若要開啟 IE 並設定預設網頁,可見下列範例:
在下述範例中,我們利用記事本讀入一個文字檔,將文字檔的編碼方式改成 UTF-8,並另存新檔,如下:
若要測試下列範例,讀者可以輸入
cscript toUtf8.js test.txt
此時 WSH 會使用記事本來讀入 test.txt,將其編碼改為 UTF-8,並另存成 test.txt_utf8。若要檢視這兩個檔案的不同,可用網頁瀏覽器來顯示這兩個檔案,並由下拉選單「檢視/編碼」,就可以看出這兩個檔案在編碼上的不同。
其他與傳送鍵盤事件的相關說明,可見微軟的官方網頁:
http://www.microsoft.com/technet/scriptcenter/guide/sas_wsh_hilv.mspx?mfr=true
JScript 程式設計與應用:用於單機的 WSH 環境