第191期 / September 5, 2013

研發新視界

分享到臉書!分享到維特!分享到噗浪!分享到Google+!分享到微博!轉寄友人友善列印

AutoHotkey應用簡介

作者/黃俊曉

[發表日期:2013/9/5]

前言

在電腦如此普及的現代,幾乎人人每天都會使用電腦來幫助我們處理事情。如果分析一下我們每日操作電腦的動作,可以發現很多動作重複的比率非常的高,例如登錄網站或應用程式時所需須入的帳號密碼、常要發電子郵件給某些聯絡人等,如果可以透過工具來幫助使用者簡化這些重複性的動作,那便可以提升效率與節省時間,而AutoHotkey便是一個這樣的工具。

AutoHotkey

AutoHotkey是一款免費的(free)且開放原始碼的(open source)工具,並運行於Windows作業系統下。透過AutoHotkey,使用者可以:
  • 幾乎所有鍵盤輸入、滑鼠點擊的事情都可以藉由AutoHotkey完成,只要使用者寫一個滑鼠或鍵盤的巨集,或是使用巨集記錄器。

  • 建立鍵盤、滑鼠和搖桿的熱鍵(Hotkey)。基本上,任一個鍵、按鈕或組合都可以成為熱鍵。

  • 展開所輸入的縮寫。例如輸入"btw",可以自動展開為"by the way",即熱字串(HotString)。

  • 重新設定鍵盤、滑鼠和搖桿的按鍵設定。

  • 將寫好的腳本(script)轉換成執行檔(.exe),便可以不需安裝AutoHotkey軟體直接使用。


AutoHotkey的官方網站為http://www.autohotkey.com/,使用者可以從網站中找到最新的下載版本以及教學範例。AutoHotkey的檔案不大,所佔資源也不多,且使用方式也不難,只要開啟筆記本,輸入完腳本後,另存為.ahk格式的檔案,再執行該檔案即可。以下即從AutoHotkey較常用的部分介紹起。

熱字串(HotString)

熱字串是比照熱鍵而來的名詞,也可以稱為「縮寫」,意思是指輸入較短的字串(縮寫)能自動延展成較長的字串,例如輸入「TICC」這四個英文字母,在AutoHotkey的幫助下可以自動轉換成「台北國際會議中心」或是「Taipei International Convention Center」亦或是其他完全無關的字串,這完全皆可由使用者來自行定義,以下為熱字串的一些範例:


《圖一》


寫法與用法說明:
  • 若每行的開頭使用半型分號(;),表示該行為註解,不會被執行。

  • 熱字串的關鍵字(縮寫)需夾在兩組半形冒號(::)中,而要擴展成的結果寫在第二組半形冒號結尾的後方。

  • 範例中的關鍵字是用一個字母與一個符號做組合,實際上是可以由任意個字母或符號組合的。

  • 觸發關鍵字擴展的觸發符號為「空白」、「Tab」與「Enter」。


若想要在延展的部分加上加上Enter鍵或是方向鍵等功能鍵的話,只需要在按鍵名稱前後加上大括號即可,以下是一些常用的按鍵:


《圖二》


這些常用按鍵是可以加入輸入次數的,例如想要再擴展字串後方輸入3個空白,第一種寫法是{Space}寫3次,即{Space}{Space}{Space};另一種是{Space 3},按鍵字串與數字間需要至少一個半形空白隔開。

另外,當使用者在使用熱字串做替換時可能有不同的需求,而AutoHotkey提供了一些選項供使用者使用。熱字串的選項是寫在第一組半形冒號中,格式為「:選項:」,以下說明幾個常會用到的選項:


《圖三》


熱鍵(Hotkey)

熱鍵的意思是指按下某個按鍵或按鍵組合時能執行特定的功能,例如在Windows作業系統中「視窗鍵」+「D」會回到桌面、「Alt」+「F4」會關閉應用程式等,透過AutoHotkey可以讓使用者自行設定所需的熱鍵組合以及功能搭配,不只可以設定鍵盤,滑鼠以及搖桿也都是可以設定的,以下用一些例子說明熱鍵的設定與用法:


《圖四》


寫法與用法說明:
  • 熱鍵寫法的格式為「熱鍵::執行指令」。

  • 熱鍵可以是任意個按鍵的組合,但有些按鍵在熱鍵中的寫法不同,需特別注意,可至http://xahlee.info/mswin/autohotkey_key_notations.html 有詳細的整理。

  • 執行指令的部分,Run後面可以接網址或是欲執行的應用程式;Send則是送出所欲傳送的訊息,這邊要特別注意的是熱鍵不能包含在訊息之中,否則會產生無窮迴圈。例如s:: Send Syscom,由於訊息內包含了熱鍵,所以會不斷的重覆送出Syscom,這點需特別注意。


除了上述的單行基本功能之外,不管是熱鍵或是熱字串都可以用多行的方式來幫助使用者進行更複雜的行為,以下以一自動登入MyNote的範例程式做為本篇文章的總結:


《圖五》


範例說明:
  • 設定自動登入的熱鍵為「Alt」+「i」。

  • 指定開啟的瀏覽器為IE,並進行等待。

  • IfWinExist是用來判斷視窗的標題為何,範例中所判斷的標題為「SYSCOM Online 系統登入」。如果是的話就換醒視窗;如果否的話擇全選網址欄位,並輸入MyNote網址。

  • 最後,送出帳號密碼。


參考資料

AutoHotkey官方網站。

wikipedia - autohotkey

輕鬆學會彈指神功─揭露AutoHotkey絕技 - 簡睿隨筆

Windows Programing: AutoHotkey Key Notations

AutoHotkey安裝目錄下附的教學文件

AutoHotkey.chm