如何轉換AutoHotkey的預設分隔字元:冒號

有網友遇到一個問題:如何在AutoHotkey裡把半形冒號(:)轉換成別的符號。這個問題的困難處在於AutoHotkey的熱字串分隔符號恰好是冒號。問題細節如下:

再請教一個小技術問題。因我用的是IBM 5576的古老鍵盤,盤面排列與現今的鍵盤不一樣。我想把盤面符號設成與現今的的鍵盤一致。目前指令都能正常載入,除了這一行, 

:::'

也就是說我要把原來打出分號( : )的鍵改成打出單引號( ' ),所以寫出了的指令就變成3個冒號連在一起 :::',而autohotkey對這一行會出現invalid hotkey,不知如何解決?謝謝!

我捨棄熱字串改用熱鍵,啟動一個AutoHotkey後,雙擊System Tray的H圖示開啟其視窗,由功能表【View→Key history and script info】以顯示按鍵資料,此時在記事本裡按下冒號並觀察AutoHotkey視窗出現的鍵值,若未看到相關按鍵則按〔F5〕重新整理,由下圖中發現冒號被AutoHotkey解譯成〔RShift(右邊的Shift)+分號〕:

AutoHotkey-Key history

紅框標示的兩個是按下鍵盤(第三欄為 d,表示Key-Down),後續兩個則是放開鍵盤(第三欄是 u,表示Key-Up)。因此用〔Shift+分號〕就能取到冒號鍵了:

;; 熱鍵中的加號代表〔Shift〕,按鍵後面加兩個冒號分隔字元
+;::
  Send '    ;; 按〔Shift+分號〕變成單引號
  return

把這個指令加到腳本檔裡再執行,果然可行。

##

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

簡睿

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

您可能也會喜歡…

2 個回應

  1. nio表示:

    當鍵盤的重複速度設為最快的時候,按住shift+;連發,有的時候這個腳本會送出; 而不是’ 或:
    像這樣可以解決嗎?

  2. Kuo表示:

    再次謝謝!果然是行家,幾個問題下來,我想執行的功能都已能用autohotkey來定義,謝謝!

發佈留言

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