AutoHotkey - 獻給懶惰的程式設計人員
是否厭煩了老是在電腦上重複執行繁雜又一模一樣的工作呢?
每次開啟電腦都要檢查email、開啟KKBox、開啟固定網頁來瀏覽新聞、將MSN設定為『忙碌』...
每次都要重複輸入相同的地址、電話以及虛情假意的問候...
希望遊戲能自動開啟無敵的外掛、希望遊戲人物能自動練功...
話說『懶,是進步的原動力』,現在誠摯介紹這款自動化開放原始碼的終極武器,AutoHotkey!
從AutoHotkey的正式網頁下載安裝後,第一次執行將會自動產生一份Script。(預設路徑在:『...My Documents/AutoHotkey.ahk』)。
其中包含一個最簡單的範例:
#z::Run www.autohotkey.com
『#』:表示Windows的『Windows』按鍵
『z』:就是鍵盤上的"z"
『Run』:表示『執行』接下來的命令
『www.autohotkey.com』:表示要開啟這個網址
此時,在任何狀況下按下『windows+z』兩個按鍵就可以開啟連到AutoHotkey的網頁。
這是自動化的第一個範例,藉由這個範例開始,程式設計師的手就開始癢起來了嘍~
接著開始下一個範例:
^!n::
IfWinExist 未命名 - 記事本
WinActivate
else
Run Notepad
return
這次是當按下『Alt+Ctrl+N』時(^表示Ctrl; !表示Alt),將打開記事本(Run Notepad),要是已經有個視窗名稱為『未命名 - 記事本』存在時(IfWinExist),則將此視窗設定為作用中的視窗(WinActivate)。簡單吧?
什麼?打開記事本只要『從開始/所有程式/附屬應用程式/記事本』來開啟就好?什麼?已經有捷徑,點兩下就好?恩。。狗就是懶,寧願鍵盤上按下三個按鍵,讓狗自己能多執行一次Sleep 1500的時間~
好吧!狗承認看到這個軟體第一個想做的功能就是:打開電腦後,當我輸入指令,就能讓電腦自動執行打開email、打開KKBox、打開加密的文件、打開五個常要瀏覽的網址...等等,這些動作總是一樣的,總是要做一次,而且要花上一連串選擇、點選的無聊動作。因此,現在就能請AutoHotkey來幫我自動執行嘍!
AutoHotkey的特異功能,不止在可以模擬滑鼠、鍵盤乃至於遊戲控制器的所有訊息及動作,還有視窗GUI的設計功能,更能針對Windows本身的功能,以及簡單的API來完成,例如,關機、重新開啟電腦、登出、音量控制、...等等,看了說明,似乎還有類似WinAPI中的SendMessage的功能呢!只要在Windows中,好好設計一下,將可以讓電腦變的更個人化、更聰明、更服從、更女僕(!?)~
此外,從正式網頁下載下來的軟體安裝後,其中還包含兩個好用的軟體:
1.AutoScriptWriter.exe:用來錄下想要的滑鼠、鍵盤動作,自動產生程式碼,可以複製貼上在自己的ahk中。
2. Ahk2Exe.exe:能夠將選定的ahk轉為執行檔,到另一台沒有安裝的AutoHotkey的電腦上,執行自動化的動作。
在此附上一個自己使用的腳本,提供有興趣的人參考。在此聲明,此腳本非適合所有的電腦,請看過程式碼後再決定是否要執行測試!
此範例分別由五個腳本所組成,每個腳本負責不同的功能(functions)這樣未來也比較好管理。其功能如下:
1. 『'+'+space』:開啟10秒的命令輸入視窗,可輸入『指令』來執行動作。
其中指令包括:
"email":開啟收信軟體
"kk":開啟KKBox
"Bio4":開啟惡靈古堡4的遊戲,並且執行無敵的外掛軟體
"ND":開啟遊戲"Nancy Drew:Danger by Design"
"bye" or "881":限時1分鐘後關機,可以按[Space]取消關機或[Enter]直接關機
"bye!" or "881!":限時1分鐘後強迫關機(資料有可能遺失),可以按[Space]取消關機或[Enter]直接關機
"reboot" or "re":限時1分鐘後重新開機,可以按[Space]取消關機或[Enter]直接關機
"reboot!" or "re!":限時1分鐘後強迫重新開機(資料有可能遺失),可以按[Space]取消關機或[Enter]直接關機
"www":連續開啟五個常用的網頁
"go":自動開啟KKBOX、五個常用的網頁,並開啟收信軟體
(以下為編輯AutoHotkey腳本的指令)
"rec":開啟AutoScriptWriter軟體來錄下動作
"test":測試執行功能,目前為電腦PC喇叭『嗶』一聲
"/h":開啟AutoHotkey的說明檔
"/ahk":開啟『我的文件』,方便編輯ahk
"/f2":讓AutoHotkey重新載入修改過的腳本,以方便驗證功能
2.『Winows+z』:打開AutoHotKey的正式網頁(預設範例)
3.『Alt+Ctrl+n』:打開記事本,要是已經存在,則設為作用中的視窗
4.『'+test+space』:複製一串網址到剪貼簿並貼上。此為驗證可以輸出中文字串的方法
此範例從『簡睿隨筆』中複製來的( http://blog.xuite.net/emisjerry/tech/174897)
5.『滑鼠左鍵按住+r』:讓AutoHotkey重新載入修改過的腳本,以方便驗證功能
此範例從『簡睿隨筆』中複製來的( http://blog.xuite.net/emisjerry/tech/6370531)
6.『Alt+Ctrl+方向鍵左』:減小主音量
7.『Alt+Ctrl+方向鍵右』:增大主音量
8.『Alt+方向鍵左』:減小音效卡音量
9.『Alt+方向鍵右』:增大因小卡音量
10.『Alt+Ctrl+方向鍵下』:使主音量靜音
11.『Ctrl+滑鼠滾輪上』:增大主音量
12.『Ctrl+滑鼠滾輪下』:減小主音量
13.『Shift+滑鼠滾輪上』:增大音效卡音量
14.『Shift+滑鼠滾輪下』:減小音效卡音量
15.『Ctrl+滑鼠中鍵』:使主音量靜音
16.『Shift+滑鼠中鍵』:使主音量靜音
17.『ESC+ESC』:關閉當前應用程式。
此範例從『簡睿隨筆』中複製來的( http://blog.xuite.net/emisjerry/tech/6370531)
此軟體能做到的功能相當強大,且help文件作得相當完整,由help中的範例可以看出,能達到相當複雜且聰明的功能。這部分還需要日後慢慢來研究。
有興趣的人歡迎一起討論吧!
參考資料:
1. 關於按鍵代號說明,請查閱AutoHotkey help中的『Send / SendRaw / SendInput / SendPlay / SendEvent: Send Keys & Clicks』一節
2. Wiki of AutoHotkey: http://en.wikipedia.org/wiki/AutoHotkey
3. 簡睿隨筆科技篇
4. AutoHotkey正式網頁: http://www.autohotkey.com/