2011年1月3日 星期一

WSH環境下操作其它應用程式─筆記本

這個範例是從「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()函數進行延遲,以免按鍵傳送過快,真是有夠危險的作法。在測試程式的過程中,覺得這功能很像按鍵精靈,只是功能不可能那麼強大就是了。也算是個有趣的用法,隨手就記下來,說不定以後可能用的上。

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...