注:中文應用部分仍需更新以清。
轉者按:本文屬于零基礎入門專題教程凸舵,原發(fā)表于 Download!網(wǎng)絡密技王第三期叠必,后轉載至簡睿隨筆荚孵,作者簡睿。本專題選取一些通俗易懂的基礎入門教程纬朝,經(jīng)適當調整(以反映目前 AutoHotkey 現(xiàn)狀)后集中發(fā)表收叶,以方便初次接觸腳本的朋友入門(幫助中的初學者向導也是很好的入門教程)。注:原文為繁體中文共苛,為方便簡體用戶判没,經(jīng) OpenCC 轉換為簡體中文蜓萄,某些用詞(主要為計算機術語)可能轉換有誤,一般不影響理解澄峰。
AutoHotkey 的高度定制功能嫉沽,讓你成為效率高手
如果你分析每天操作電腦時所重復執(zhí)行的動作——相同的網(wǎng)址、相同的電子信箱俏竞、相同的文本輸入等等绸硕,你會驚訝的發(fā)現(xiàn)重復頻率之高令人咋舌。如果你想從諸多的重復動作里解脫而出胞此,并且能有效提升操作電腦的效率臣咖,那么 AutoHotkey 是你不能錯過的工具,善用 AutoHotkey 將讓你輕而易舉的成為效率高手漱牵。
軟件名稱: AutoHotkey
軟件版本:1.1.15.01
軟件大卸嵘摺:2+MB
軟件授權:免費開源
適用平臺:Windows
語言接口:英文
官方網(wǎng)站:http://ahkscript.org/
下載地址:點擊下載
AutoHotkey:鍵盤與鼠標工具
AutoHotkey 顧名思義就是協(xié)助你將常用按鍵自動化的工具,而這些自動化的操作可以由用戶依自身的需求來設置酣胀,隨著設置的項目日漸擴充齊全刁赦,AutoHotkey 帶給你的便利也日益增多。AutoHotkey 好處多多闻镶,只要幾個簡單步驟安裝好甚脉,再建立一個寫有 AutoHotkey 指令的文本文件(這個文件稱為 AutoHotkey 的腳本檔)就能開始享受它帶來的速度感與便利性∶「咦~還要寫指令牺氨?會不會很困難,我只是會用電腦的用戶而已呀墩剖!」別怕別怕猴凹,不要被「指令」這兩個字嚇到了,建立腳本檔的過程就只是像是打篇文章而已岭皂,請耐心的看下去郊霎,本文會一步一步地把建立腳本檔的步驟清楚、簡單的介紹給你爷绘,讀者們只要依樣畫葫蘆馬上就能感受到 AutoHotkey 的強大威力了书劝!
在正式開始之前,先把 AutoHotkey 提供的功能以它本身的術語介紹給你:
-
熱鍵(HotKey):
熱鍵也可稱為快捷鍵(Shortcut Key)土至,意指某個按鍵能執(zhí)行特定的功能购对。在 Windows 系統(tǒng)里,〔Win+E〕開啟文件總管陶因、〔Win+R〕開啟執(zhí)行窗口是幾個常用的兩個熱鍵洞斯。而 AutoHotkey 的熱鍵功能則讓你自行建立專屬你個人的快捷鍵。
雖然 HotKey 的對象似乎只限鍵盤,但事實上連鼠標的按鈕烙如、滾輪與搖桿也都能依你的需要來設置。 -
熱字串(HotString):
熱字串是比照熱鍵而來的名詞毅否,有的系統(tǒng)會稱呼為「縮寫」亚铁,指的是輸入較短的字串(縮寫的關鍵字)而能自動擴展成較長的文本,例如只要輸入「inet」四個英文本母就能自動變成「互聯(lián)網(wǎng)」螟加,而更令人興奮的是:所有的熱字串都是你自已設置的徘溢。 -
操作流程的判斷與循環(huán)控制:
如果 AutoHotkey 只具備了鍵盤與鼠標的自訂功能,那它充其量也不過是個鍵盤工具罷了捆探,但事實上 AutoHotkey 提供了許多指令用來判斷諸多事項然爆,具備程序控制能力,因而晉身為巨集(Macro)工具黍图,能依需要再做更細部的處理與控制曾雕。我們可以簡單地把巨集或腳本視為一種簡易、好寫的程序助被,雖說簡單但功能可是一點也不馬虎剖张。 -
圖形接口與腳本合體:
AutoHotkey 也提供了許多窗口、按鈕等圖形接口的指令揩环,能讓我們很輕易的建立操作用的小窗口搔弄,從而提供了更方便與更優(yōu)越的使用接口,而這些指令都能透過一支 SmartGUI 執(zhí)行檔用拖拉的方式來自動產(chǎn)生丰滑。
AutoHotkey 的基本功能介紹完畢顾犹,以下進入主題。首先說明 AutoHotkey 的安裝步驟褒墨。
AutoHotkey 下載與安裝
- 使用 IE 或 FireFox 等瀏覽器進入下載頁炫刷,點擊「Installer」開始下載,當「文件下載」對話盒出現(xiàn)后貌亭,選取你常用的工具文件夾柬唯,把文件存入此文件夾。(注:該安裝包已包含了后面幾個鏈接中的文件圃庭,那些鏈接適合老用戶锄奢。)在頁面下方還有前往中文幫助的下載鏈接。
-
下載后的「AutoHotkey111501_Install.exe」就是安裝執(zhí)行檔剧腻,請雙擊此文件以執(zhí)行安裝步驟(若已安裝過舊版本拘央,則會提示直接更新或自定義更新)。
- 典型安裝:使用默認選項安裝到默認位置中书在,建議新用戶選擇灰伟,之后請直接跳到第六步
- 自定義安裝:可在后續(xù)對話框中選擇各選項、安裝位置等,適合老用戶栏账,點擊后進入下一頁
- 你也可以把它裝到 USB 隨身碟里以增進可攜性帖族,即點擊右下角“extract to...”并指定目標目錄直接提取壓縮文件。
- 構建選擇:
- Unicode 32-bit:沒有特殊情況都推薦使用挡爵。
- Unicode 64-bit:在 64 位系統(tǒng)中性能更強竖般,僅在 64 位系統(tǒng)中安裝時才會出現(xiàn)。
-
ANSI 32-bit:與某些舊腳本(主要指 AutoHotkey Basic)的兼容性更好茶鹃。
-
指定安裝的文件夾涣雕,缺省是「C:\Program Files\AutoHotkey」,還可以選擇不創(chuàng)建開始菜單中的快捷方式闭翩,最后按〔Next〕挣郭。
-
接著選取要安裝的類型,如果想安裝腳本編譯器的話疗韵,則保持【Install script compiler】的勾選狀態(tài)兑障;想啟動 .ahk 文件的拖拉功能的話,把【Enable drag & drop】選項勾選起來伶棒,最后按〔Install〕旺垒。
-
文件解壓縮并復制后即告全部安裝結束。此時可以打開幫助文檔或看看本版本的更新內(nèi)容或運行 AutoHotkey肤无,也可以點擊“Exit”直接退出先蒋。
AutoHotkey 安裝完成后不必重新啟動電腦,爾后擴展名 .ahk 會自動關聯(lián)到 AutoHotkey.exe宛渐,只要雙擊擴展名為 .ahk 的文件就能啟動 AutoHotkey 來讀取該文件的內(nèi)容竞漾,再依腳本檔內(nèi)容來設置鍵盤與鼠標。AutoHotkey 安裝文件夾里有幾個重要文件要請大家注意:
文件名稱 | 功能說明 |
---|---|
AutoHotkey.exe | 用戶所選構建的 AutoHotkey 主程序窥翩,AutoHotkeyA32.exe 為 ANSI 構建业岁,AutoHotkeyU32.exe 為 Unicode 構建。 |
AutoHotkey.chm | 英文幫助寇蚊,很好的學習參考文檔笔时,可下載中文幫助覆蓋。 |
AU3_Spy.exe | Active Window Info仗岸,顯示窗口控件信息的小工具允耿,這些信息對高端的腳本撰寫很有幫助。 |
Compiler\Ahk2Exe.exe 及相關文件 | 從腳本檔生成執(zhí)行檔的圖形工具扒怖,以方便沒有安裝 AutoHotkey 系統(tǒng)的環(huán)境能用執(zhí)行檔直接執(zhí)行较锡。 |
Installer.ahk | 安裝程序的 ahk 腳本,結構工整盗痒、形式優(yōu)美蚂蕴,可作為范本學習參考。 |
總之,我們只要把 AutoHotkey 的設置與指令寫在擴展名為 .ahk 的文本檔里骡楼,就能設置需要的動作熔号。以下我們由淺入深、按部就班地展示 AutoHotkey 的各項功能鸟整。
由簡單的范例開始使用 AutoHotkey 的熱字串
請用【開始→程序集→附屬應用程序→記事本】啟動記事本(或使用你慣用的文本編輯程序)跨嘉,輸入以下內(nèi)容后保存成 test1.ahk。
以上是常用網(wǎng)址與常用電子郵件的幾個熱字串范例吃嘿,提示幾個重點:
- 每行若以半角分號開頭則表示此列是說明注解,不會被執(zhí)行
- 熱字串的關鍵字(或稱縮寫)必須用兩個半角冒號夾住梦重,再把要擴展的結果寫在結尾的冒號后面兑燥,只能寫一行(多行的寫法請見后面的說明)
- 雖然范例中的關鍵字只有一個字母,實際運用上可任意組合多個字母與數(shù)字
雙擊 test1.ahk 后就能在 System Tray 里看到 AutoHotkey 的 H 圖標琴拧,表示已執(zhí)行并加載 test1.ahk降瞳。我們另行建立一個 test.txt 來測試,開啟 test.txt 后蚓胸,只要鍵入「y!」與一個觸發(fā)符號(此符號可以是〔空白〕挣饥、〔Tab〕鍵或〔Enter〕鍵等,能透過指令定義)沛膳,則關鍵字會替換成冒號后面的內(nèi)容:
輸入文本 | 觸發(fā)符號 | 替換后的內(nèi)容 |
---|---|---|
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 |
觸發(fā)符號要使用〔空白〕或〔Enter〕鍵悉聽尊便扔枫,我個人是習慣用〔空白〕(更多觸發(fā)符號請參閱終止符)。另外锹安,為了避免在中文輸入狀態(tài)下使用到拆字按鍵而造成中文無法正常輸入短荐,建議關鍵字以一個特殊字符開頭或結尾,例如范例中的驚嘆號與 @ 符號叹哭,不過此二符號必須加按〔Shift〕鍵忍宋,不甚方便也影響輸入速度,建議可使用單鍵符號风罩,例如單引號糠排、分號、斜線或逗點等來組成關鍵字超升,我個人常用的是單引號入宦、斜線與逗點,最好是選用中文輸入法未使用到的字符廓俭,以方便能在中文狀態(tài)下也能輸入云石。以下是修改成單引號與斜線后的范例:
輸入文本 | 觸發(fā)符號 | 替換后的內(nèi)容 |
---|---|---|
‘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 文件內(nèi)谣膳,再把 .ahk 文件存到啟動文件夾里,如此便能自動重復使用了铅乡。筆者匯總幾類常用的字串供各位做參考與當做你設置的啟始內(nèi)容继谚,你可把下列表格的前兩欄「關鍵字」與「替換后的內(nèi)容」寫入 test1.ahk 即可:
<pre>
<table>
<thead>
<tr>
<th width="89">關鍵字</th>
<th width="362">替換后的內(nèi)容</th>
<th width="203">說明</th>
<th>分類</th>
</tr>
</thead>
<tbody>
<tr>
<td>::’g::</td>
<td>http://www.google.com.tw</td>
<td>Google網(wǎng)站</td>
<td rowspan="3">常用搜尋網(wǎng)站</td>
</tr>
<tr>
<td>::’y::</td>
<td>http://www.yahoo.com.tw</td>
<td>Yahoo! 網(wǎng)站</td>
</tr>
<tr>
<td>::’l::</td>
<td>http://www.live.com</td>
<td>微軟 Live Search 網(wǎng)站</td>
</tr>
<tr>
<td>::’dic::</td>
<td>http://dictionary.yahoo.com.tw</td>
<td>Yahoo! 奇摩字典</td>
<td rowspan="2">字典網(wǎng)站</td>
</tr>
<tr>
<td>::’cdic::</td>
<td>http://140.111.34.46/newDict/dict/index.html</td>
<td>教育部重編國語辭典修訂本網(wǎng)站</td>
</tr>
<tr>
<td>::@g::</td>
<td>@gmail.com</td>
<td></td>
<td rowspan="2">常用電子郵件</td>
</tr>
<tr>
<td>::@h::</td>
<td>@ms1.hinet.net</td>
<td></td>
</tr>
<tr>
<td>::’tk::</td>
<td>Thanks.</td>
<td>內(nèi)容也可用「謝謝」,端視使用頻率而定</td>
<td rowspan="4">常用郵件文本</td>
</tr>
<tr>
<td>::btw::</td>
<td>By the way,</td>
<td></td>
</tr>
<tr>
<td>::’br::</td>
<td>Best regards,</td>
<td></td>
</tr>
<tr>
<td>::’sy::</td>
<td>Sincerely yours,</td>
<td></td>
</tr>
<tr>
<td>::’me::</td>
<td>我的名字</td>
<td>你的姓名阵幸。</td>
<td>個人信息</td>
</tr>
</tbody>
</table>
</pre>
熱字串配合使用 AutoHotkey 的按鍵字串
如果你在瀏覽器網(wǎng)址列輸入范例內(nèi)的熱字串后花履,可能會想是否能讓熱字串能自動輸出〔Enter〕鍵呢?如果可以的話挚赊,我們就可以少按一個〔Enter〕鍵了诡壁,這個需求只要在熱字串里加上按鍵字串就能輕而易舉的達成。AutoHotkey 按鍵的寫法是在按鍵名稱前后加上大括號荠割,因此 {enter}
就代表〔Enter〕鍵妹卿,{home}
就代表〔Home〕鍵,以下枚舉幾個常用的按鍵(更多可用按鍵請參閱按鍵和按鈕列表):
<pre>
<table>
<thead>
<tr>
<td>{Enter}</td>
<td>Enter 鍵</td>
<td>{Escape} 或 {Esc}</td>
<td>Escape 鍵</td>
<td>{Tab}</td>
<td>Tab 鍵</td>
</tr>
</thead>
<tbody>
<tr>
<td>{Backspace} 或 {BS}</td>
<td>倒退鍵</td>
<td>{Delete}</td>
<td>刪除鍵</td>
<td>{Insert}</td>
<td>插入鍵</td>
</tr>
<tr>
<td>{Up}蔑鹦、{Down}夺克、{Left}、{Right}</td>
<td>方向鍵</td>
<td>{PgUp}嚎朽、{PgDn}</td>
<td>換頁鍵</td>
<td>{CapsLock}</td>
<td>大寫鍵</td>
</tr>
<tr>
<td>{NumLock}</td>
<td>數(shù)字鎖定鍵</td>
<td>{Ctrl}铺纽、{LCtrl}、{RCtrl}</td>
<td>控制鍵與左火鼻、右控制鍵</td>
<td>{Alt}室囊、{LAlt}、{RAlt}
<td>Alt 鍵與左魁索、右 Alt 鍵</td>
</tr>
</tbody>
</table>
</pre>
上面的寫法除了鍵盤之外融撞,鼠標按鈕也能用相同的格式來表示,例如:
寫法 | 含義 | 寫法 | 含義 |
---|---|---|---|
{LButton}粗蔚、{MButton}尝偎、{RButton} | 左、中鹏控、右鈕 | {WheelDown}致扯、{WheelUp} | 滾輪向下與向上 |
按鍵字串里若加上數(shù)字代表連續(xù)輸出數(shù)個相同的按鍵,例如 {Left 3}
表示輸出 3 個左鍵(務必只用半角字符当辐,全角是無法使用的)抖僵,等于 {Left}{Left}{Left}
,按鍵字串和數(shù)字的間必須以至少一個半角空白分隔開缘揪。熱字串加上這些按鍵的組合能夠形成更多樣化的功能耍群,例如:
關鍵字 | 替換后的內(nèi)容 | 觸發(fā)符號 | 說明 |
---|---|---|---|
::’y:: | http://tw.yahoo.com/{Enter} | 空白 | 輸入 ’y 會輸出網(wǎng)址與〔Enter〕鍵 |
::/g:: | @gmail.com{Home} | 空白 | 輸入 /g 會輸出電子郵件并將光標移到開頭位置(如同按下〔Home〕鍵) |
::’img:: | {Left 2} | 空白 | 輸入 ’img 替換成標簽义桂,且將光標移到雙引號里面,但因為 AutoHotkey 缺省會把觸發(fā)符號也輸出蹈垢,造成光標左移到雙引號里后又多輸出當做觸發(fā)符號的空白 |
AutoHotkey 熱字串的替換依據(jù)不同的需求會有不同的選項慷吊,用戶能很方便地設置不同的功能;熱字串選項是寫在開頭兩個冒號中間曹抬,格式是「:選項:」溉瓶,舉幾個例子說明常用的選項(更多選項請參閱熱字串選項):
<pre>
<table>
<thead>
<tr>
<th>關鍵字</th>
<th>替換后的內(nèi)容</th>
<th>觸發(fā)符號</th>
<th>說明</th>
</tr>
</thead>
<tbody>
<tr>
<td>:O:’img::</td>
<td>{left 2}</td>
<td>空白</td>
<td>必須按觸發(fā)符號以替換文本,但<strong>不輸出</strong>觸發(fā)符號谤民;只要把開頭的兩個冒號改成 :O: 即可堰酿。O 是 Omit(忽略)的意思,用來忽略觸發(fā)符號</td>
</tr>
<tr>
<td>::@g::</td>
<td>test@gmail.com</td>
<td>無</td>
<td>:: 表示<strong>不需要</strong>觸發(fā)符號张足,鍵入 @ 和 g 兩個字符后胞锰,立刻替換內(nèi)容</td>
</tr>
<tr>
<td>:B0:::<p></p>
<p>(B零)</p></td>
<td>{Left 7}</td>
<td>空白</td>
<td>AutoHotkey 缺省會把關鍵字刪掉(即觸發(fā)后自動執(zhí)行倒退以刪掉關鍵字),此倒退功能可以使用 :B0: 選項將之取消兢榨,如此關鍵字在替換后仍會保留下來,再附加替換后內(nèi)容顺饮。<br />
輸出結果:<strong>|</strong>(|是光標位置)吵聪,光標前會多出做為觸發(fā)符號的一個空白</td>
</tr>
<tr>
<td>:*B0:::</td>
<td>{Left 7}</td>
<td>無</td>
<td>再多加一個星號就能不使用觸發(fā)符號,因而不會有上列多出一個空白的問題輸出結果:<strong>|</strong>(|是光標位置)</td>
</tr>
</tbody>
</table>
</pre>
熱字串使用多列文本的方法
上面的例子每個關鍵字只能替換一列文本兼雄,若想輸出多列文本應該要如何設置呢吟逝?其實 AutoHotkey 提供了簡單的語法來達成這個功能:只要用各占一列的左右括號把多列文本夾起來就可以了。
::long1::
(
Dear xxx,
Best regards,
Your Name
)
AutoHotkey 的熱鍵設置方式
熱鍵的設置也是很容易就能輕松完成赦肋,格式是「熱鍵::執(zhí)行的指令」块攒,熱鍵和要執(zhí)行的指令間夾有兩個半角冒號。熱鍵有許多按鍵組合佃乘,以下是幾個特殊的按鍵符號(更多前綴符號請參閱熱鍵修飾符):
<pre>
<table>
<thead>
<tr>
<th>按鍵符號</th>
<th>代表的按鍵與說明</th>
</tr>
</thead>
<tbody>
<tr>
<td>^</td>
<td width="648">〔Ctrl〕鍵</td>
</tr>
<tr>
<td>!</td>
<td>〔Alt〕鍵</td>
</tr>
<tr>
<td>+</td>
<td>〔Shift〕鍵</td>
</tr>
<tr>
<td>#</td>
<td>〔Win〕鍵</td>
</tr>
<tr>
<td>&</td>
<td>用 & 符號把兩個按鍵或按鈕組合成為一個鍵囱井,例如:LButton & a 表示按左鈕不放,同時再按〔a〕鍵</td>
</tr>
<tr>
<td>~</td>
<td>加 ~ 符號表示<strong>不抑制</strong>該按鍵趣避,使用在當我們想要把某個按鍵做額外輸出的場合庞呕。例如:
<pre>; 不抑制原來的〔a〕鍵,〔a〕鍵替換成 aBBB
~a::Send BBB
; 按〔a〕鍵輸出 BBB程帕,抑制原來的按鍵輸出
a::Send BBB
</pre>
</td>
</tr>
</tbody>
</table>
</pre>
指定好熱鍵后住练,再接兩個半角冒號,再用缺省的命令讓 AutoHotkey 執(zhí)行特定任務愁拭,用范例說明:
<pre>
<table>
<thead>
<tr>
<th>熱鍵設置</th>
<th>指令說明</th>
</tr>
</thead>
<tbody>
<tr>
<td>#n::Run notepad</td>
<td>按〔Win+N〕鍵執(zhí)行記事本程序(Notepad.exe)Run 命令表示執(zhí)行后面指定的程序</td>
</tr>
<tr>
<td>^!F::run c:\program files\mozilla firefox2\firefox.exe</td>
<td>按〔Ctrl+Alt+F〕鍵執(zhí)行 FireFox</td>
</tr>
<tr>
<td>~RButton::MsgBox 按了右鍵</td>
<td>按右鍵顯示「按了右鍵」對話窗讲逛,若在記事本里操作,則原本的右鍵功能表會被「按了右鍵」對話窗取代了岭埠。
MsgBox 是 Message Box 的意思盏混,彈出顯示消息對話窗</td>
</tr>
<tr>
<td>RButton::MsgBox 按了右鍵</td>
<td>彈出【按了右鍵】對話窗后繼續(xù)顯示記事本的右鍵功能表</td>
</tr>
<tr>
<td>~MButton & a::Send 送出消息</td>
<td>按鼠標中鈕(兩個按鈕的鼠標蔚鸥,中鈕就是滾輪)后用 MsgBox 函數(shù)顯示對話窗</td>
</tr>
</tbody>
</table>
</pre>
多列式的熱字串是用括號夾住文本,同樣地熱鍵也能執(zhí)行多列命令:每個命令必須各占一行括饶,開頭的空白內(nèi)縮只是為了閱讀便利而已株茶,沒有空白或空白的數(shù)目多寡皆不會影響命令的執(zhí)行,最后必須以 return 結束:
; 一個〔Ctrl+Alt+F〕按鍵先后啟動 FireFox 和記事本
^!F::
Run c:\program files\mozilla firefox2\firefox.exe
Run c:\Wndows\notepad.exe
return
設置好并重新加載后試一下是否成功了呢图焰?咦启盛?好像不行……很有可能是你電腦的系統(tǒng)目錄和范例里的位置不同,比如操作系統(tǒng)的系統(tǒng)數(shù)據(jù)可能是 C:\Windows 或 C:\WINNT 或安裝系統(tǒng)時自行指定的文件夾名稱技羔,因此若想讓一個指令適用多個作業(yè)環(huán)境的話僵闯,就必須使用內(nèi)置變量來替代固定的文件夾名稱,以下是幾個你可能會使用到的與文件夾相關的內(nèi)置變量(更多的文件夾內(nèi)置變量請參閱操作系統(tǒng)和用戶信息):
內(nèi)置變量 | 用途 | 范例 |
---|---|---|
A_WinDir | Windows 系統(tǒng)文件夾 | C:\Windows 或 C:\WINNT |
A_ProgramFiles | 程序集文件夾名稱 | C:\Program Files |
A_AppData | 用戶個人文件夾 | C:\Documents and Settings\用戶\Application Data |
A_Desktop | 用戶桌面文件夾 | C:\Documents and Settings\用戶\桌面 |
知道變量后再回頭修改指令藤滥,在使用變量時其前后要夾上百分號 %鳖粟。當然了,如果你的環(huán)境是固定的拙绊,直接寫成固定文件夾也不會有問題向图,反而還更快速呢。下面是使用通用方式的寫法:
; 一個〔Ctrl+Alt+F〕按鍵先后啟動 FireFox 和記事本
^!F::
Run %A_ProgramFiles%\mozilla firefox2\firefox.exe
Run %A_WinDir%\notepad.exe
return
還有幾個和系統(tǒng)相關的內(nèi)置變量标沪,可以方便取出這些信息:
<pre>
<table>
<thead>
<tr>
<th>內(nèi)置變量</th>
<th>用途</th>
<th>范例</th>
</tr>
</thead>
<tbody>
<tr>
<td>A_YYYY榄攀、A_MM、A_DD</td>
<td>
<p>分別傳回系統(tǒng)日期的年度金句、月份檩赢、日子</p>
</td>
<td>
<pre>::'d::
d = %A_YYYY%/%A_MM%/%A_DD%
Send %d%
return</pre>
</td>
</tr>
<tr>
<td>A_Hour、A_Min违寞、A_Sec</td>
<td>分別傳回系統(tǒng)時間的小時贞瞒、分鐘、秒數(shù)</td>
<td>
<pre>::'t::
t = %A_Hour%:%A_Min%:%A_Sec%
Send %t%
return</pre>
</td>
</tr>
<tr>
<td>Clipboard</td>
<td>剪貼板內(nèi)容</td>
<td>可以取用也可設值趁曼,在后面會有使用范例</td>
</tr>
</tbody>
</table>
</pre>
接著我列出幾個我常用的按鍵設置當做大家使用的啟始參考范例:
; 按 Win+G 送出 @gmail.com 字串
#g::Send @gmail.com
; 按〔Win+H〕送出 @hotmail.com 字串
#h::Send @hotmail.com
; 按〔Win+2〕送出公司的電子信箱军浆。用 2 的原因是因為 2 和 @ 是同一個按鍵,方便記憶
#2::Send @your_mail_address.com.tw
; 按〔Win+O〕開啟 OpenOffice Writer
#o::Run %A_ProgramFiles%OpenOffice.org 2.4\programs\writer.exe
; 按〔Win+B〕啟動缺省瀏覽器并加載指定網(wǎng)址
#b::Run http://www.google.com.tw
; 按〔Ctrl+Alt+C〕開啟控制臺窗口
^!c::Run %A_WinDir%\System32\control.exe
; 按左鈕不放再按〔e〕啟動記事本以編輯 AutoHotkey 腳本檔
~LButton & e::Run %A_WinDir%notepad.exe C:\Program Files\AutoHotkey\test.ahk
; 按左鈕不放再按〔r〕以重新加載(reload)腳本檔挡闰,使修改過的內(nèi)容能啟用
~LButton &r::
reload
return
AutoHotkey 的中文應用
(本段內(nèi)容仍待整理)還有多少用戶曾記得無法直接支持中文(準確說是僅支持 ANSI 字符)的熱字串瘾敢?當時要實現(xiàn)替換為中文有兩種方法,一是使用剪貼板尿这,二是利用 Send 命令的 {ASC nnnnn}
輸出 Unicode 字符(某些程序可能不支持簇抵,包括其 Unicode 版本)。
Word 有提供把特殊符號指定給按鍵的用法射众,但只能在 Word 里使用碟摆,如果通過 AutoHotkey 設置垛吗,那么不管你操作的是那一種程序观蜗,統(tǒng)統(tǒng)都能適用。下面我們用一些熱鍵設置來方便輸入中文的標點符號。
; 輸入 ’addr 與觸發(fā)符號后替換成地址蔚叨。
:: 'addr::
current_clipboard = %Clipboard% ; 先把剪貼板目前內(nèi)容存入 current_clipboard 變量
Clipboard = 臺北市中山區(qū)民生東路二段 141 號 B1 ; 將電腦人公司的地址存入剪貼板
Send ^v
; 用「Ctrl+V」執(zhí)行粘貼剪貼板內(nèi)容
Clipboard = %current_clipboard% ; 再把剪貼板還原回原本的內(nèi)容
return
; 按〔Ctrl+點〕送出句點
^.::
Clipboard = 碌宴。 ; 把句點存入剪貼板
Send ^v
; 送出〔Ctrl+V〕粘貼句點
return
; 按〔Ctrl+半角逗點〕送出全角逗點
^,::
Clipboard = 个曙,
Send ^v
return
; 按〔Ctrl+單引號〕送出頓點
^'::
Clipboard = 察郁、
Send ^v
return
; 按〔Alt+分號〕送出全角分號
!;::
Clipboard = ;
Send ^v
return
; 按〔Alt+1〕送出左箭頭
!1::
Clipboard = ←
Send ^v
return
; 按〔Alt+1〕送出右箭頭
!2::
Clipboard = →
Send ^v
return
接著我們再設置幾個中文括號轩缤,先把要放在括號里的文本選取好命迈,再按指定的按鍵就能把被選取文本夾在括號里。由于這些按鍵的處理指令大同小異火的,只有括號的符號不同而已壶愤,因此我們可以把指令集中到一個函數(shù)(send_bracket)里。
![::
current_clipboard = %Clipboard% ; 把原有剪貼板內(nèi)容存起來
Clipboard = ; 把剪貼板清空
Send,
^c ; 把選取文本復制到剪貼板
ClipWait,1 ; 等待剪貼板保存動作完成
clipboard = 「%clipboard%」
; 在剪貼板前后加上全角括號
Send,
^v{left} ; 粘貼加了括號后的剪貼板內(nèi)容
Clipboard = %current_clipboard% ; 剪貼板還原回原來內(nèi)容
return
^[::
send_bracket("「", "」")
return
#[::
send_bracket("〔","〕")
return
^]::
send_bracket(“『“,”』“)
return
^![::
send_bracket("【","】")
return
^!]::
send_bracket(“《“,”》“)
return
send_bracket(start, end) {
current_clipboard = %Clipboard%
Clipboard =
Send, ^c
ClipWait,1
clipboard = %start%%clipboard%%end%
Send ^v{left}
Clipboard = %current_clipboard%
return
}
AutoHotkey_L 出現(xiàn)后馏鹤,實現(xiàn)了對 Unicode 的全面支持征椒,這種情況成為了歷史。
- send_brackets 函數(shù)能將選取的文本或剪貼板內(nèi)容的前后加上不同的中文括號湃累,例如《書名號》勃救、【中括號】等。
- send_html 則是輸出常用的 HTML 標簽治力,會判斷剪貼板內(nèi)容是否為網(wǎng)址而輸出到不同的插入點剪芥。
- send 指令以 SendInput 取代,輸出速度提升不少
; 傳回選取文本的內(nèi)容
getSelectedText() {
clpb_saved = %ClipboardAll% ; save clipboard
Clipboard := "" ; clear
Send, ^c ; simulate Ctrl+C (=selection in clipboard)
selection = %Clipboard% ; save the content of the clipboard
Clipboard = %clpb_saved% ; restore old content of the clipboard
return selection
}
; 送出一組中文符號琴许,如 send_brackets("「」")
send_brackets(symbol) {
selection := getSelectedText()
StringLen, length, selection
if (length = 0) {
selection = %clipboard%
}
; msgBox %selection%
left_str := Substr(symbol,1,1)
right_str := Substr(symbol,2,1)
sendInput %left_str%%selection%%right_str%
StringLen, length, selection
length := length + 1
sendInput {left %length%}
return
}
; 依剪貼板開頭是否為“http:”來替換 $$ 或一般文本的 @@
; "@@"
send_html(tag, pos1, pos2) {
selection := GetSelectedText()
StringLen, length, selection
if (length = 0) {
selection := clipboard
}
leading := Substr(selection, 1,5)
;msgbox %leading%
newstr = tag
if (leading = "http:") {
StringReplace, newstr, tag, $$, %selection%,
StringLen, length, selection
length := pos1
} else {
StringReplace, newstr, tag, @@, %selection%,
StringLen, length, selection
length := length + pos2
}
;msgbox after=%newstr%
sendInput %newstr%
sendInput {left %length%}
return
}
; 按 Ctrl+Comma 輸出全角逗點,以此類推(下面這三個熱鍵可能有誤溉躲,需加 Send)
^,::榜田,
^.::。
^;::锻梳;
^[:: send_brackets("「」")
^]:: send_brackets("『』")
^![:: send_brackets("【】")
^!]:: send_brackets("《》")
\#[:: send_brackets("〔〕")
^':: send_brackets("""""")
;===== HotString =====
::,a::
send_html("@@",6,8)
return
::,img::
send_html("@@",4,11)
return
::,aimg::
send_html("@@",8,8)
return
AutoHotkey 的綜合運用:標示字串與搜尋
當我們在某份文檔或某網(wǎng)頁上看到某個詞句想要用搜尋引擎來查詢時箭券,大致會有下列四個步驟:
- 把該詞句存入剪貼板
- 開啟搜尋引擎網(wǎng)站
- 粘貼剪貼板里的詞句
- 按搜尋
如果透過 AutoHotkey 我們可以把動作簡化成兩個步驟:
- 選取要搜尋的詞句
- 按自訂的一個按鍵,例如〔Alt+G〕
; 選取文本后按〔Alt+G〕執(zhí)行 Google 搜尋
!g::
current_clipboard = %Clipboard% ; 把目前的剪貼板內(nèi)容存起來供后面還原
Clipboard = ; 先把剪貼板清空
Send ^c
; 把選取字串用〔Ctrl+C〕存入剪貼板
ClipWait, 1 ; 等待 1 秒讓剪貼板執(zhí)行存入動作
; 下行使用 Google 執(zhí)行搜尋動作疑枯,要搜尋的字串就是剪貼板內(nèi)容
Run http://www.google.com.tw/search?hl=zh-TW&q=%Clipboard%
Clipboard = %current_clipboard% ; 還原先前的剪貼板內(nèi)容
return
; 選取文本后按〔Alt+Y〕執(zhí)行 Yahoo! 搜尋
!y::
current_clipboard = %Clipboard%
Send ^c
ClipWait, 1
Run http://tw.search.yahoo.com/search?ei=UTF-8&p=%Clipboard%
Clipboard = %current_clipboard%
return
; 選取文本后按〔Alt+L〕執(zhí)行微軟 Live Search 搜尋
!l::
current_clipboard = %Clipboard%
Send ^c
ClipWait, 1
Run http://search.live.com/results.aspx?mkt=zh-tw&q=%Clipboard%
Clipboard = %current_clipboard%
return
提升效率的好幫手
在簡要的介紹 AutoHotkey 的熱鍵與熱字串功能后辩块,你是否也認為它確實能為你的電腦生活帶來更好的效率呢?必須額外付出的學習成本事實上也是相當?shù)?br> 廉的荆永,為了更快速废亭、更便捷的電腦生活,AutoHotkey 是極佳的自我投資具钥。
本文僅是基礎的入門介紹豆村,以下列出幾個網(wǎng)站供想要更上層樓的讀者們參考:
- 官方網(wǎng)站、論壇及其中文子論壇
- 中文愛好者論壇
- 中文幫助:幫助是很好的參考手冊骂删,同時自帶了很好的初學者向導
- 本博客中更多的 AutoHotkey 使用經(jīng)驗和技巧:AutoHotkey 分類掌动、AutoHotkey 標簽