2008年03月19日
用AutoHotkey統一不同項的偵錯功能鍵
筆者經常需要在不同的開發工具間切換,用IntelliJ IDEA寫Java與JSP,網頁除錯則使用Microsoft Script Editor(以下簡稱MSDE),偶爾還用Delphi拉拉視窗表單,人吃五穀雜糧,寫程式沒有都沒Bug的,因此開發工具的偵錯追蹤功能就是我輩的好朋友了。但每個系統用 的功能鍵都不同,在操作時經常會發生按鍵錯亂的狀況,想要把這些功能鍵設定成一致,卻因為是系統鍵而無法設置或因操作繁瑣而放棄。今天突然靈機一動想到可以用AutoHotkey 來試試。
我常用的三個偵錯按鍵如下:
因為使用IDEA較頻繁,因此把按鍵統一成〔F7〕、〔F8〕、〔F9〕,基本的操作步驟如下:
以下就是更換按鍵的指令。程式邏輯簡述如下:
程式很簡單,但解決了長久以來的困擾,而且其他各自不同的按鍵也能透過此種置換方法來達成一致。
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〕,就做了逐步執行的動作了
| ; 由標題判斷使用的程式. 傳回"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的此種運用算是小兵立大功式的系統增強吧。
##
