2008年04月10日
輕鬆學會彈指神功-揭露AutoHotkey絕技
如果你分析每天操作電腦時所重覆執行的動作-相同的網址、相同的電子信箱、相同的文字輸入等等,你會驚訝的發現重覆頻率之高令人咋舌。如果你想從諸多的重 覆動作裡解脫而出,並且能有效提升操作電腦的效率,那麼AutoHotkey是你不能錯過的工具,善用AutoHotkey將讓你輕而易舉的成為效率高 手。
AutoHotkey小檔案
軟體性質:免費軟體 版本代碼:1.0.47.05 作業系統:Windows 檔案大小:1969 KB 語言介面:英文 官方網站:http://www.autohotkey.com 軟體下載點:http://www.autohotkey.com/download/AutoHotkeyInstall.exe 腳本檔範例下載點:http://www.mediafire.com/?myzblw2zgmb |
AutoHotkey:鍵盤與滑鼠工具
AutoHotkey顧名思義就是協助你將常用按鍵自動化的工具,而這些自動化的操作可以由使用者依自身的需求來設置,隨著設定的項目日漸擴充齊全, AutoHotkey帶給你的便利也日益增多。AutoHotkey好處多多,只要幾個簡單步驟安裝好,再建立一個寫有AutoHotkey指令的文字檔 案(這個檔案稱為AutoHotkey的腳本檔)就能開始享受它帶來的速度感與便利性。「咦~還要寫指令?會不會很困難,我只是會用電腦的使用者而已 呀!」別怕別怕,不要被「指令」這兩個字嚇到了,建立腳本檔的過程就只是像是打篇文章而已,請耐心的看下去,本文會一步一步地把建立腳本檔的步驟清楚、簡 單的介紹給你,讀者們只要依樣畫葫蘆馬上就能感受到AutoHotkey的強大威力了!
在正式開始之前,先把AutoHotkey提供的功能以它本身的術語介紹給你:
- 熱鍵(HotKey): 熱鍵也可稱為快捷鍵(Shortcut Key),意指某個按鍵能執行特定的功能。在Windows系統裡,〔Win+E〕開啟檔案總管、〔Win+R〕開啟執行視窗是幾個常用的熱鍵之二。而 AutoHotkey的熱鍵功能則讓你自行建立專屬你個人的快捷鍵。
雖然HotKey的對象似乎只限鍵盤,但事實上連滑鼠的按鈕、滾輪與搖桿也都能依你的需要來設置。 - 熱字串(HotString): 熱字串是比照熱鍵而來的名詞,有的系統會稱呼為「縮寫」,指的是輸入較短的字串(縮寫的關鍵字)而能自動擴展成較長的文字,例如只要輸入「inet」四個 英文字母就能自動變成「網際網路」,而更令人興奮的是:所有的熱字串都是你自已設定的。
- 操作流程的判斷與迴圈控制: 如果AutoHotkey只具備了鍵盤與滑鼠的自訂功能,那它充其量也不過是個鍵盤工具罷了,但事實上AutoHotkey提 供了許多指令用來判斷諸多事項,具備程式控制能力,因而晉身為巨集(Macro)工具,能依需要再做更細部的處理與控制。我們可以簡單地把巨集或腳本視為 一種簡易、好寫的程式,雖說簡單但功能可是一點也不馬虎。
- 圖形介面與腳本合體:AutoHotkey 也提供了許多視窗、按鈕等圖形介面的指令,能讓我們很輕易的建立操作用的小視窗,從而提供了更方便與更優越的使用介面,而這些指令都能透過一支 SmartGUI.exe執行檔用拖拉的方式來自動產生。
AutoHotkey下載與安裝
1. 使用IE或FireFox等瀏覽器進入下載網頁,點選「AutoHotkey」進行下載,當「檔案下載」對話盒出現後,選取你常用的工具資料夾,把檔案存 入此資料夾。

2. 下載後的「AutoHotkey104705_Install.exe」就是安裝執行檔,請雙擊此檔案以執行安裝步驟。首先按〔Next〕。

3. 在授權頁裡可以確認AutoHotkey是使用GPL授權的,因此你可以安心使用。閱讀授權說明完畢後再按〔I Agree〕進入下一頁。

4. 接著選取要安裝的類型,如果想啟動.ahk檔案的拖拉功能的話,則把第三項的【Enable drag & drop onto scripts】選項勾選起來,同時保持【Main Program】和【Script Compiler】的勾選狀態,最後按〔Next〕。

5. 最後指定安裝的資料夾,預設是「C:\Program Files\AutoHotkey」,你也可以把它裝到USB隨身碟裡,以增進可攜性。資料夾選取好後按〔Install〕。

6. 檔案解壓縮並複製後按「Finish」即告全部安裝完畢。若不想檢視讀我檔案的話,則取消〔Show Readme〕勾選。

AutoHotkey安裝完成後不必重新啟動電腦,爾後副檔名.ahk會自動關聯到AutoHotkey.exe,只要點擊副檔名為.ahk的檔案就能啟 動AutoHotkey來讀取該檔案的內容,再依腳本檔內容來設置鍵盤與滑鼠。AutoHotkey安裝資料夾裡有幾個重要檔案要請大家注意:
| 檔案名稱 | 功能說明 |
|---|---|
| AutoHotkey.exe、 | AutoHotkey的主程式與說明檔。AutoHotkey.chm具有搜尋功能,是很好的學習參考文件 |
| AU3_Spy.exe | Active Window Info,顯示視窗系統訊息的小工具,這些 訊息對進階的腳本撰寫很有幫助 |
| SmartGUI.exe | 用拖拉的方法來定義視窗與其內的各種視覺元件,最後產 生AutoHotkey的腳本檔。這個工具可以說是一個程式產生器 |
| AutoScriptWriter.exe | 一樣是個產生AutoHotkey腳本檔的產生器,不過是採取錄製鍵盤與滑鼠操作過程的方法來產生腳本內容 |
| Ahk2Exe.exe | 把腳本檔產生成執行檔的工具,以方便沒有安裝AutoHotkey系統的環境能用執行檔直接執行。Ahk2Exe.exe是命令列指令,語法如下: Ahk2exe.exe /in "test1.ahk" /icon "test1.ico" |
總之,我們只要把AutoHotkey的設定與指令寫在副檔名為.ahk的文字檔裡,就能設定需要的動作。以下我們由淺入深、按部就班地展示 AutoHotkey的各項功能。
由簡單的範例開始使用AutoHotkey的熱字串
1. 請用【開始→程式集→附屬應用程式→記事本】啟動記事本(或使用你慣用的文字編輯程式),輸入以 下內容後儲存成 test1.ahk。

以上是常用網址與常用電子郵件的幾個熱字串範例,提示幾個重點:
- 每行開頭若以半形分號開頭則表示此列是說明註解,不會被執行
- 熱字串的關鍵字(或稱縮寫)必須用兩個半形冒號夾住,再把要擴展的結果寫在結尾的冒號後面,只能寫一行(多行的寫法請見後面的說 明)
- 雖然範例中的關鍵字只有一個字母,實際運用上可任意組合多個字母與數字
| 輸入文字 | 觸發符號 | 替換後的內容 |
|---|---|---|
| y! | 空白 | http://tw.yahoo.com/ |
| g! | Tab | http://www.google.com.tw |
| w! | Enter | http://www.wretch.cc |
| @g | 空白 | @gmail.com |
| @m | 空白 | @Your_Mail_Address.com.tw |
觸發符號要使用〔空白〕或〔Enter〕鍵悉聽尊便,我個人是習慣用〔空白〕。另外,為了避免在中文輸入狀態下使用到拆字按鍵而造成中文無法正常輸入,建 議關鍵字以一個特殊字元開頭或結尾,例如範例中的驚歎號與@符號,不過此二符號必須加按〔Shift〕鍵,不甚方便也影響輸入速度,建議可使用單鍵符號, 例如單引號、分號、斜線或逗點等來組成關鍵字,我個人常用的是單引號、斜線與逗點,最好是選用中文輸入法未使用到的字元,以方便能在中文狀態下也能輸入。 以下是修改成單引號與斜線後的範例:
| 輸入文字 | 觸發符號 | 替換後的內容 |
|---|---|---|
| 'y | 空白 | http://tw.yahoo.com/ |
| 'g | Tab | http://www.google.com.tw |
| 'w | Enter | http://www.wretch.cc |
| /g | 空白 | @gmail.com |
| /m | Tab | @Your_Mail_Address.com.tw |
編輯修改test1.ahk後必須重新載入才能讓變動生效,重新載入有兩種方法:
- 在右下角System Tray找到AutoHotkey的H圖示後,按右鍵選【Exit】以結束目前的AutoHotkey,再雙擊修改後的test1.ahk以重新啟動 AutoHotkey
- 第二個是較簡便的方法,一樣開啟System Tray的H圖示後,按右鍵選【Reload This Script】即可重新讀入修改後的腳本指令

常用的幾種熱字串範例
讀者們可以自行彙總日常常用的字串,將之設置於.ahk檔案內,再把.ahk檔案存到啟動資料夾裡,如此便能自動重覆使用了。筆者彙總幾類常用的字串供各 位做參考與當做你設定的啟始內容,你可由http://www.mediafire.com/?myzblw2zgmb下載test1.ahk或把下列表 格的前兩欄「關鍵字」與「替換後的內容」寫入test1.ahk即可:
| 關鍵字 | 替換後的內容 | 說明 | 分類 |
|---|---|---|---|
| ::'g:: | http://www.google.com.tw | Google網 站 | 常用搜尋網站 |
| ::'y:: | http://www.yahoo.com.tw | Yahoo!網 站 | |
| ::'l:: | http://www.live.com | 微軟Live Search網站 | |
| ::'dic:: | http://dictionary.yahoo.com.tw | Yahoo!奇 摩字典 | 字典網站 |
| ::'cdic:: | http://140.111.34.46/newDict/dict/index.html | 教育部重編國語辭典修訂本網站 | |
| ::@g:: | @gmail.com |
| 常用電子郵件 |
| ::@h:: | @ms1.hinet.net |
| |
| ::'tk:: | Thanks. | 內容也可用「謝謝」,端視使用頻率而定 | 常用郵件文字 |
| ::btw:: | By the way, |
| |
| ::'br:: | Best regards, |
| |
| ::'sy:: | Sincerely yours, |
| |
| ::'me:: | 我的名字 | 你的姓名。輸出的竟是亂碼?等等,後面有破解方法 | 個人資訊 |
熱字串配合使用AutoHotkey的按鍵字串
如果你在瀏覽器網址列輸入範例內的熱字串後,可能會想是否能讓熱字串能自動輸出〔Enter〕鍵呢?如果可以的話,我們就可以少按一個〔Enter〕鍵 了,這個需求只要在熱字串裡加上按鍵字串就能輕而易舉的達成。AutoHotkey按鍵的寫法是在按鍵名稱前後加上大括號,因此{enter}就代表 〔Enter〕鍵,{home}就代表〔Home〕鍵,以下列舉幾個常用的按鍵:
| {Enter} | Enter鍵 | {Escape}或{Esc} | Escape鍵 | {Tab} | Tab鍵 |
| {Backspace}或{BS} | 倒退鍵 | {Delete} | 刪除鍵 | {Insert} | 插入鍵 |
| {Up}、{Down}、{Left}、{Right} | 方向鍵 | {PgUp}、{PgDn} | 換頁鍵 | {CapsLock} | 大寫鍵 |
| {NumLock} | 數字鎖定鍵 | {Ctrl} {LCtrl}、{RCtrl} | 控制鍵與左、右控制鍵 | {Alt} {LAlt} {RAlt} | Alt鍵與左、右Alt鍵 |
上面的寫法除了鍵盤之外,滑鼠按鈕也能用相同的格式來表示,例如:
| {LButton}、 {MButton}、 {RButton} | 左、中、右鈕 | {WheelDown}、 {WheelUp} | 滾輪向下與向上 |
按鍵字串裡若加上數字代表連續輸出數個相同的按鍵,例如{Left 3}表示輸出3個左鍵(務必只用半形字元,全形是無法使用的),等於{Left}{Left}{Left},按鍵字串和數字的間必須以至少一個半形空白分 隔開。熱字串加上這些按鍵的組合能夠形成更多樣化的功能,例如:
| 關鍵字 | 替換後的內容 | 觸發符號 | 說明 |
|---|---|---|---|
| ::'y:: | http://tw.yahoo.com/{Enter} | 空白 | 輸入'y會 輸出網址與〔Enter〕 鍵 |
| ::/g:: | @gmail.com{Home} | 空白 | 輸入/g會 輸出電子郵件並將游標移到開頭位置(如同按下〔Home〕 鍵) |
| ::'img:: | <img src=””>{Left 2} | 空白 | 輸入'img替 換成<img>標 籤,且將游標移到雙引號裡面,但因為AutoHotkey預 設會把觸發符號也輸出,造成游標左移到雙引號裡後又多輸出當做觸發符號的空白 |
AutoHotkey熱字串的替換依據不同的需求會有不同的選項,使用者能很方便地設置不同的功能;熱字串選項是寫在開頭兩個冒號中間,格式是「:選項:」,舉幾個例子說明常用的選項:
| 關鍵字 | 替換後的內容 | 觸發符號 | 說明 |
|---|---|---|---|
| :O:'img:: | <img src=””>{left 2} | 空白 | 必須按觸發符號以替換文字,但不輸出觸發符號;只要把開頭的兩個冒號改成:O:即可。O是Omit(忽略)的意思,用來忽略觸發 符號 |
| :*:@g:: | test@gmail.com | 無 | :*:表 示不需要觸發符號,鍵入@和g兩個字元後,立刻替換內容 |
| :B0:<html>:: (B零) | </html>{Left 7} | 空白 | AutoHotkey預 設會把關鍵字刪掉(即觸發後自動執行倒退以刪掉關鍵字),此倒退功能可以使用:B0:選項將之取消,如此關鍵字在替 換後仍會保留下來,再附加替換後內容。
輸出結果:<html> |</html>(|是游標位置),游標前會多出做為觸發 符號的一個空白 |
| :*B0:<html>:: | </html>{Left 7} | 無 | 再多加一個星號就能不使用觸發符號,因而不會有上列多出一個空白的問題
輸出結果:<html>|</html>(|是游標位置) |
熱字串使用多列文字的方法
上面的例子每個關鍵字只能替換一列文字,若想輸出多列文字應該要如何設定呢?其實AutoHotkey提供了簡單的語法來達成這個功能:只要用各佔一列的 左右括號把多列文字夾起來就可以了。
| ::long1:: ( Dear xxx,
Best regards,
Your Name ) |
AutoHotkey的熱鍵設定方式
熱鍵的設定也是很容易就能輕鬆完成,格式是「熱鍵::執行的指令」,熱鍵和要執行的指令間夾有兩個半形冒號。熱鍵有許多按鍵組合,以下是幾個特殊的按鍵符 號:
| 按鍵符號 | 代表的按鍵與說明 |
|---|---|
| ^ | 〔Ctrl〕 鍵 |
| ! | 〔Alt〕 鍵 |
| + | 〔Shift〕 鍵 |
| # | 〔Win〕 鍵 |
| & | 用&符 號把兩個按鍵或按鈕組合成為一個鍵,例如:LButton & a表示按左鈕不放,同 時再按〔a〕鍵 |
| ~ | 加~符 號表示抑制該按鍵,使用在當我們想要把某個按鍵變更成另一個內容的場合。例如: |
指定好熱鍵後,再接兩個半形冒號,再用預設的命令讓AutoHotkey執行特定任務,用範例說明:
| 熱鍵設定 | 指令說明 |
|---|---|
| #n::Run notepad | 按〔Win+N〕 鍵執行記事本程式(Notepad.exe) |
| ^!F::run c:\program files\mozilla firefox2\firefox.exe | 按〔Ctrl+Alt+F〕 鍵執行FireFox |
| ~RButton::MsgBox 按了右鍵 | 按右鍵顯示「按了右鍵」對話窗,若在記事本裡操作,則原本的右鍵功能表會被「按了右鍵」對話窗取代了。 |
| RButton::MsgBox 按了右鍵 | 彈出【按了右鍵】對話窗後繼續顯示記事本的右鍵功能表 |
| ~MButton & a::Send 送出訊 息 | 按滑鼠中鈕(兩個按鈕的滑鼠,中鈕就是滾輪)後用MsgBox函數顯示對話窗 |
多列式的熱字串是用括號夾住文字,同樣地熱鍵也能執行多列命令:每個命令必須各佔一行,開頭的空白內縮只是為了閱讀便利而已,沒有空白或空白的數目多寡皆 不會影響命令的執行,最後必須以return結束:
| ; 一 個〔Ctrl+Alt+F〕 按鍵先後啟動FireFox和 記事本 |
設定好並重新載入後試一下是否成功了呢?咦?好像不行...很有可能是你電腦的系統目錄和範例裡的位置不同,比如作業系統的系統資料可能是C:\ Windows或C:\WINNT或安裝系統時自行指定的資料夾名稱,因此若想讓一個指令適用多個作業環境的話,就必須使用內建變數來替代固定的資料夾名 稱,以下是幾個你可能會使用到的與資料夾相關的內建變數:
| 內建變數 | 用途 | 範例 |
|---|---|---|
| A_WinDir | Windows系 統資料夾 | C:\Windows或C:\WINNT |
| A_ProgramFiles | 程式集資料夾名稱 | C:\Program Files |
| A_AppData | 使用者個人資料夾 | C:\Documents and Settings\使用者\Application Data |
| A_Desktop | 使用者桌面資料夾 | C:\Documents and Settings\使用者\桌 面 |
知道變數後再回頭修改指令,在使用變數時其前後要夾上百分號%。當然了,如果你的環境是固定的,直接寫成固定資料夾也不會有問題,反而還更快速呢。下面是 使用通用方式的寫法:
| ; 一 個〔Ctrl+Alt+F〕 按鍵先後啟動FireFox和 記事本 |
還有幾個和系統相關的內建變數,可以方便取出這些資訊:
| 內建變數 | 用途 | 範例 |
|---|---|---|
| A_YYYY | 傳回系統日期年度 | ::'d:: |
| A_MM | 傳回系統日期月份 | |
| A_DD | 傳回系統日期日期 | |
| A_Hour | 傳回系統時間小時 | ::'t:: |
| A_Min | 傳回系統時間分鐘 | |
| A_Sec | 傳回系統時間秒數 | |
| Clipboard | 剪貼簿內容 | 可以取用也可設值,在後面會有使用範例 |
接著我列出幾個我常用的按鍵設定當做大家使用的啟始參考範例:
| ; 按 〔Win+G〕送出@gmail.com字串 ; 按 〔Win+H〕送出@hotmail.com字串 ; 按 〔Win+2〕送出公 司的電子信箱。用2的 原因是因為2和@是同一個按鍵,方便記憶 ; 按 〔Win+O〕開啟OpenOffice Writer ; 按 〔Win+B〕啟動預 設瀏覽器並載入指定網址 ; 按 〔Ctrl+Alt+C〕 開啟控制台視窗 ; 按 左鈕不放再按〔e〕啟 動記事本以編輯AutoHotkey腳 本檔 ; 按左鈕不放再按〔r〕以重新載入(reload)腳本檔,使修改過的內 容能啟用 |
AutoHotkey的中文運用
慘了,熱字串沒辦法輸出文字!?很可惜AutoHotkey對於Unicode的支援相當薄弱,造成熱字串沒有辦法直接輸出中文,幸好我們可以透過剪貼簿 解決這個中文問題。以下範例是輸入'addr與觸發符號後替換成地址的指令。
| ::'addr:: |
我們可以用下列的熱鍵設定來方便輸入中文的標點符號。Word也有提供把特殊符號指定給按鍵的作法,但只能在Word裡使用,如果用AutoHotkey 設置,那麼不管你操作的是那一種程式,統統都能適用。
| ; 按〔Ctrl+點〕送出句點 ; 按〔Ctrl+半形逗點〕送出全形逗點 ; 按〔Ctrl+單引號〕送出頓點 ; 按〔Alt+分號〕送出全形分號 ; 按〔Alt+1〕送出左箭頭 ; 按〔Alt+1〕送出右箭頭 |
接著我們再設置幾個中文括號,先把要放在括號裡的文字選取好,再按指定的按鍵就能把被選取文字夾在括號裡。由於這些按鍵的處理指令大同小異,只有括號的符 號不同而已,因此我們可以把指令集中到一個函數(send_bracket)裡。
| ![:: ^[:: #[:: ^]:: ^![:: ^!]:: send_bracket(start, end) { } |
AutoHotkey的綜合運用:標示字串與搜尋
當我們在某份文件或某網頁上看到某個詞句想要用搜尋引擎來查詢時,大致會有下列四個步驟:
- 把該詞句存入剪貼簿
- 開啟搜尋引擎網站
- 貼上剪貼簿裡的詞句
- 按搜尋
- 選取要搜尋的詞句
- 按自訂的一個按鍵,例如〔Alt+G〕
| ; 選取文字後按〔Alt+G〕執行Google搜尋 ; 選取文字後按〔Alt+Y〕執行Yahoo!搜尋 ; 選取文字後按〔Alt+L〕執行微軟Live Search搜尋 |
提升效率的好幫手
在簡要的介紹AutoHotkey的熱鍵與熱字串功能後,你是否也認為它確實能為你的電腦生活帶來更好的效率呢?必須額外付出的學習成本事實上也是相當低 廉的,為了更快速、更便捷的電腦生活,AutoHotkey是極佳的自我投資。
本文僅是基礎的入門介紹,以下列出幾個網站供想要更上層樓的讀者們參考:
AutoHotkey參考網站
- 官方網站:http://www.autohotkey.com
- 官方Wiki網站:http://www.autohotkey.com/wiki/index.php
- 維基百科裡的介紹:http://en.wikipedia.org/wiki/AutoHotkey
- 學習文件:AutoHotkey安裝資料夾裡的autohotkey.chm
##
