筆者經常需要在不同的開發工具間切換,用IntelliJ IDEA寫Java與JSP,網頁除錯則使用Microsoft Script Editor(以下簡稱MSDE),偶爾還用Delphi拉拉視窗表單,人吃五穀雜糧,寫程式沒有都沒Bug的,因此開發工具的偵錯追蹤功能就是我輩的好朋友了。但每個系統用的功能鍵都不同,在操作時經常會發生按鍵錯亂的狀況,想要把這些功能鍵設定成一致,卻因為是系統鍵而無法設置或因操作繁瑣而放棄。今天突然靈機一動想到可以用AutoHotkey來試試。
我常用的三個偵錯按鍵如下:
| 系統工具\偵錯功能 | Step into(逐步執行) | Step over(不進入函式) | Resume Program(開始) |
|---|---|---|---|
| IntelliJ IDEA 按鍵 | F7 | F8 | F9 |
| Microsoft Script Editor 按鍵 | F11 | F10 | F5 |
因為使用IDEA較頻繁,因此把按鍵統一成〔F7〕、〔F8〕、〔F9〕,基本的操作步驟如下:
- 由網頁錯誤處跳入MSDE
- 按〔F7〕做逐步執行,AutoHotkey攔截到〔F7〕後自動送出〔F11〕
- MSDE接收到〔F11〕,就做了逐步執行的動作了
其實就是對MSDE做鍵盤Remapping處理。因為這個按鍵轉換只針對MSDE,因此先寫一個函數來辨識我們是否在執行MSDE:
; 由標題判斷使用的程式. 傳回"IDEA" 或 "MSDE"
getProgram(sTitle) {
sProgram := ""
iPos := InStr(sTitle, "IntelliJ")
;MsgBox %iPos%
if iPos > 0
sProgram := "IDEA"
else {
iPos := InStr(sTitle, "Microsoft Script Editor")
if iPos > 0
sProgram := "MSDE"
}
return %sProgram%
}
以下就是更換按鍵的指令。程式邏輯簡述如下:
- 把目前視窗的標題存入變數sTitle
- 以標題為參數叫用getProgram,再把傳回的"IDEA"或"MSDE"存入變數sProgram
- 若程式為"MSDE"時則送出〔F11〕按鍵
;; Microsoft Script Editor的Step into用F11, Step over用F10; 將之改成慣用的F7, F8
;; 加~會繼續執行原訂功能
~f7::
WinGetTitle, sTitle, A
sProgram := getProgram(sTitle)
;MsgBox %sProgram%-%sTitle%
if (sProgram = "MSDE")
Send {F11}
return
~f8::
WinGetTitle, sTitle, A
sProgram := getProgram(sTitle)
;MsgBox %sProgram%
if (sProgram = "MSDE")
Send {F10}
return
~f9::
WinGetTitle, sTitle, A
sProgram := getProgram(sTitle)
;MsgBox %sProgram%
if (sProgram = "MSDE")
Send {F5}
return
程式很簡單,但解決了長久以來的困擾,而且其他各自不同的按鍵也能透過此種置換方法來達成一致。
AutoHotkey的此種運用算是小兵立大功式的系統增強吧。
- 腳本檔下載:trace.ahk
##
您可能也會有興趣的類似文章
- AutoHotkey:在FireFox裡用鍵盤瀏覽網頁 (2則留言, 2008/03/27)
- [Tools] 常用的AutoHotKey設定 (9則留言, 2005/05/12)
- 如何轉換AutoHotkey的預設分隔字元:冒號 (2則留言, 2008/03/17)
- 用AutoHotkey改造ThinkPad X61按鍵 (2則留言, 2008/03/23)
- 輕鬆學會彈指神功-揭露AutoHotkey絕技 (36則留言, 2008/04/10)
- [Tools] 操作熱鍵與熱字串的超便利工具:AutoHotKey (13則留言, 2005/04/29)
- 用AutoHotkey輕鬆製作螢幕小鍵盤 (12則留言, 2008/03/16)
- 用AutoHotkey改造特殊按鍵 (5則留言, 2008/03/19)
- AutoHotkey輸出中文的方法 (4則留言, 2008/03/01)
- AutoHotkey與Google+ Commander合用-以滑鼠移動訊息位置 (0則留言, 2011/10/31)
- 改寫AutoHotkey輸出中文字串的寫法 (4則留言, 2009/06/20)
- [Tools] 撰寫AutoHotKey指令以複製檔案 (2則留言, 2005/06/11)
- [AutoHotkey] 寫得不錯的AutoHotkey推薦文 (0則留言, 2007/10/31)
- [Tools] 續:撰寫AutoHotKey指令以複製檔案 (0則留言, 2005/06/12)
- PhraseExpress:凡人版的AutoHotkey [修訂] (0則留言, 2009/11/28)















最新留言