這個範例是從「JScript 程式設計與應用:WSH」提供的程式碼中發現的,算是個滿‧‧‧少用的功能?!說真的,一開始看到這個範例只是覺的新奇,實在想不出來這樣的功能可以用在哪?
程式碼並不多,調整縮排後如下:
/**
*
* 傳送鍵盤字元控制記事本的方式。
*
* @author ace
*
* @version 2011/01/03 v0.1
*
* @param
*
* @returns
*
* @requires
*
*/
var strSourceName = new String("Source.txt");
var strTargetName = new String("Target.txt");
// 開啟Notepad程式。
objShell = new ActiveXObject("WScript.Shell");
objShell.Run("notepad " + strSourceName, 9);
WScript.Sleep(500); // Give Notepad some time to load
// 在檔案尾端加入字串。
objShell.SendKeys("^{END}"); // Ctrl-End
objShell.SendKeys("{ENTER}{ENTER}");
objShell.SendKeys("Append some message to the End.");
// 另存新檔。
// todo:若目的檔案已存在,則會彈出確認是否取代之詢問視窗,造成程式無法一次完成儲存的流程。
objShell.SendKeys("%{F}"); // Alt-F
objShell.SendKeys("a");
objShell.SendKeys(strTargetName);
objShell.SendKeys("{TAB}{TAB}{ENTER}");
objShell.SendKeys("%{F4}");
程式的主要功能就是開啟notepad.exe程式,然後~藉由SendKeys函數來操作筆記本!!還需要用Sleep()函數進行延遲,以免按鍵傳送過快,真是有夠危險的作法。在測試程式的過程中,覺得這功能很像按鍵精靈,只是功能不可能那麼強大就是了。也算是個有趣的用法,隨手就記下來,說不定以後可能用的上。
沒有留言:
張貼留言