用AutoHotkey統一不同工具的偵錯功能鍵

者經常需要在不同的開發工具間切換,用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〕,基本的操作步驟如下:

  1. 由網頁錯誤處跳入MSDE
  2. 按〔F7〕做逐步執行,AutoHotkey攔截到〔F7〕後自動送出〔F11〕
  3. 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%
}

 

以下就是更換按鍵的指令。程式邏輯簡述如下:

  1. 把目前視窗的標題存入變數sTitle
  2. 以標題為參數叫用getProgram,再把傳回的"IDEA"或"MSDE"存入變數sProgram
  3. 若程式為"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的此種運用算是小兵立大功式的系統增強吧。

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *