[Tools] 操作熱鍵與熱字串的超便利工具:AutoHotKey

除了介紹過的 ClipMate 之外,我另一個必備的工具是 Perfect Keyboard (Toget的介紹) ,Toget的介紹中說:

Perfect Keyboard Pro 把鍵盤變成萬能控制台,讓您打字有如神助

「歡迎您來信詢問有關問題」、圖片、表格…,每天都輸入相同的句子、資料,會不會覺得很煩?Perfect Keyboard Pro 讓您只要輸入像「/tf 」、「.tm 」幾個字就可以出現長長一串句子或資料,啟動程式…,大幅縮短您的打字時間,把鍵盤變成萬能的控制台!

Perfect Keyboard確實非常有效的節省了許多的打字與找軟體的時間,例如:

  • 按Window-G → 於游標位置插入 @gmail.com 字串
  • 輸入 /tw 再按空白 → /tw變成 台灣 兩個字
  • 在瀏覽器網址列輸入 /g → 變成 http://www.google.com

以此類推,在使用過程中,可以逐步建立自己的常用熱鍵與縮寫字串。

Perfect Keyboard雖然好用,我也一直在使用,但由於它是共享軟體,需要美金29.95元,因此並未急著介紹給大家。最近發現了具備相同功能的Freeware:AutoHotKey,雖然我仍然在試用中,但其功能足以取代Perfect Keyboard,因此先將初步的操作步驟寫出來,也讓大家能儘早試用。

  • 安裝:照指示安裝即可
  • 開始執行:用記事本等文書編輯程式建立一個副檔名為 .ahk 的文字檔(即能被AutoHotKey讀取並執行的腳本檔),在檔案總管找到此檔案雙擊執行之,AutoHotKey的主程式便載入並顯示在System Tray上,按右鍵即可開啟其功能表
  • 編輯指令:要使用的熱鍵(Hotkey)或熱字串(HotString,即為上述範例中的縮寫文字)存放在 .ahk 的文字檔內即可
  • 重新載入腳本檔:開啟AutoHotKey在System Tray的右鍵功能表,用Reload This Script

指令需要以固定格式撰寫,例如:

.ahk內的指令 說明
#n::Run notepad.exe #代表Window鍵,按Window-N則執行Notepad.exe;
#n後面用兩個冒號當分隔符號
#w::Run c:\program files\EmEditor3\EmEditor.exe 用Window-W執行EmEditor.exe;可以加入路徑
^!c::Run calc.exe ^代表Ctrl鍵,! 代表Alt鍵;按Ctrl-Alt-C執行小算盤
#m::
RunWait, Notepad
MsgBox, 記事本執行完畢。.
return
RunWait執行其後的Notepad,並等到Notepad關閉後,才會繼續執行;MsgBox則顯示訊息對話框。這種格式是一次執行多個指令,每個指令必須寫在獨立的一列,最後用一列return結束
::/test::http://localhost/test{enter} 用兩個冒號開頭的就是Hotstring的設定。在網址列輸入 /test與空白後,自動擴展為http://localhost/test與一個Enter鍵。這是在測試程式時經常使用的字串
::/blog::
clipboard = 簡睿隨筆
Send ^v
return
輸入 /blog與空白後,/blog變成 簡睿隨筆;這是測試了好一會後才解決了AutoHotKey無法順利處理Unicode的作法。Clipboard是系統預設的變數,代表剪貼簿的內容,我們將文字存入剪貼簿,再送出(Send) 貼上(Ctrl-V)按鍵,這樣就讓中文正確的顯示出來了

其他更多、更強的功能尚在測試與消化中,有空再提出測試報告。
##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

13 個回應

  1. Rei表示:

    版大您好,首先先感謝您的回覆:=3我一開始還以為這篇文章不會有人注意XD回歸正題,關於版大的方法我之前有試過;不過由於在下某script的運作方式是進入一個無窮迴圈,透過hotkey來進入pause(暫時的開關功能),而不是使用hotkey作觸發;所以個人覺得使用suspend會不太適合,當然我也還沒嘗試過用suspend來重寫就是了XDD總之還是謝謝版大的回覆如果有其他方法還請多加指教:=3謝謝~

  2. Rei表示:

    版大您好,請問autohotkey如何改變在pause時的tray icon呢?過去我一直認為ahk有個全域變數來儲存程式的狀態圖示,可惜似乎沒有。改變運作中的圖示很簡單,不過要改變pause時的圖示時,官方論壇網友提供的方法好像很複雜,不知道版大能不能提供其他更換ahk在pause時的tray icon方法?謝謝~ :=3

  3. Kuo表示:

    再請教一個小技術問題。因我用的是IBM 5576的古老鍵盤,盤面排列與現今的鍵盤不一樣。我想把盤面符號設成與現今的的鍵盤一致。目前指令都能正常載入,除了這一行,:::’也就是說我要把原來打出分號( : )的鍵改成打出單引號( ‘ ),所以寫出了的指令就變成3個冒號連在一起 :::’,而autohotkey對這一行會出現invalid hotkey,不知如何解決?謝謝!

  4. Kuo表示:

    再度謝謝!我後來想到其實沒有必要設要wake up鍵,因休眠狀態下搖搖滑鼠或動到鍵盤,電腦就會wake up,因此沒wake up鍵也沒關係。我會好好把手冊看看,再來慢慢玩。

  5. Kuo表示:

    試過了,謝謝!真得很輕鬆就上路,基本上autohotkey真得很好用,指令也好寫,反而英文手冊寫得太詳細,要慢慢看。不妨把blog的中文說明稍稍補一下就是精簡版的指令手冊。順便再問個問題,很多鍵盤沒有sleep與wake up鍵,不知如何用autohotkey來增添?謝謝!我會在"鍵鼠討論區"推推薦你的blog。

  6. Kuo表示:

    很好的資訊。請問若我想用function key 來代替組合鍵,能否也用autohotkey來完成。例F1=連按兩次scroll lock鍵F2=crtl-shift+L 鍵謝謝!

  7. 西瓜表示:

    請問一下autohotkey 可以讀取記憶體內的內容嗎例如玩線上遊戲抓取到的血量記憶體位置,可以讀它的內容值嗎?麻煩請您回復到我的信箱s5310078@yahoo.com.tw感恩

  8. 小小表示:

    感謝大大,有用,小弟不才,花了一番功夫才弄懂….謝謝

  9. 小小表示:

    冒昧想請教大大關於AutoHotKey的問題,因為最近才聽說這個軟體,問得不好請見諒….請問AutoHotKey有"事件觸發"的功能嗎?我想要監控script中某個程式的執行,該程式會開啟一個視窗,執行完畢會自動關掉,但是有時候程式不知何故會停住不動,所以我要按一下視窗式上的retest按鍵,讓它重來一下。這個動作我希望AutoHotKey幫我做,只是不知道做不作得到…..謝謝

  10. 冷井表示:

    想跟您請教關於AutoHotKey的一些指令寫法:①請問如果我要達到「按一次Ctrl+W則使得Windows Key無效,再按一次則恢復」這個功能,該如何寫?②請問如果我要達到「按一下Ctrl+F1就自動送出b和space無限迴圈,按一下Ctrl+F2終止這個迴圈,且這個廻圈只針對Warcraft III這個程式進行」這個功能,該如何寫呢?

  11. 簡睿表示:

    表格範例中的方法能正確的輸出中文:::/blog::  clipboard = 簡睿隨筆  Send ^v  return

  12. 路人甲表示:

    autohotkey 真的很好用,唯一的缺點是不能送出中文,像Send, 這是中文結果只能看到一堆亂碼,唉….

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *