天天看點

AutoHotKey 快速入門

AutoHotKey 是一個免費的鍵盤宏程式,可以用于配置鍵盤快捷鍵、滑鼠事件

以及搖杆事件,還可以在輸入文本的時候對文本進行擴充(自動補全)

AutoHotKey 是一個免費的鍵盤宏程式,可以用于配置鍵盤快捷鍵、滑鼠事件

以及搖杆事件,還可以在輸入文本的時候對文本進行擴充(自動補全)

第一個腳本

建立檔案

test.ahk

并輸入以下内容:

^!n::
  Run, notepad
Return
           

儲存檔案,輕按兩下執行,可以在右下角看到腳本執行的圖示,

然後按下

Ctrl

+

Alt

+

N

就可以打開記事本程式。

AutoHotKey 快捷鍵指令大概可以分為三個部分:

  • ::

    左邊的部分表示需要按下的快捷鍵,

    ^

    表示

    Ctrl

    !

    表示

    Alt

  • ::

    右邊部分表示需要執行的指令
  • 最後

    Return

    表示結束指令

另外除了快捷鍵(HotKey)配置, AutoHotKey 還可以配置 HotStrings,

相當于我們平時使用的 IDE 中的文本自動補全功能

在電腦右下角的腳本執行圖示上右鍵,單擊“編輯腳本”,

會彈出一個記事本程式來編輯目前運作的腳本,加入如下内容:

::hw::Hello World!
           

儲存檔案,關閉編輯器,在右下角腳本圖示上右鍵,單擊“重新加載腳本”,

然後來測試一下腳本功能,首先

Ctrl

+

Alt

+

N

打開記事本,

輸入

hw

,按下

Enter

Tab

就會進行自動補全,用

Hello World!

替換

hw

特殊符号

^

表示

Ctrl

這種快捷鍵中的特殊符号,意義如下:

符号 意義
# Win(鍵盤上有Windows圖示的鍵)
! Alt
^ Ctrl
+ Shift

我們除了可以像上面的一樣定義全局快捷鍵之外,

另外還有一些用于Windows的特殊指令,可以用于定義特定視窗的快捷鍵,如:

  • #IfWinActive

    表示視窗是否處于激活狀态,可以用于指定在特定視窗下可用的快捷鍵,

    如下腳本表示在

    Untitled - Notepad

    視窗中按下

    Win+P

    按鍵會彈出視窗

    提示“你按下了Win+P”

    #IfWinActive Untitled - Notepad
    #space::
      MsgBox, 你按下了Win+P
    Return
    #IfWinActive
               
  • #IfWinExist

    表示視窗是否存在

發送按鍵 -

一鍵當千

快捷鍵後的指令部分除了執行指令運作程式之外,還可以向電腦發送按鍵單擊事件,

就相當于 AutoHotKey 幫你去按下按鍵,進而擷取按下一個快捷鍵相當于一堆按鍵。

LCtrl::
  Send, AutoHotKey
Return
           

上述指令表示按下左邊

Ctrl

按鍵時會發送按鍵,依次按下

AutoHotKey

對于鍵盤上的一些特殊按鍵,如

Ctrl

等都有對應的表示,如:

^

表示

Ctrl

!

表示

Alt

等等,除了這種類似快捷鍵特殊符号的表示,還可以使用

{...}

的方式來

表示,如:

{lAlt}

表示左邊的

Alt

鍵,

{F1}-{F24}

表示鍵盤上的

F1

F24

鍵等。

; 按下Win+H就等于按下Ctrl+Alt+HOME鍵
#h::
  Send, ^!{HOME}
Return
           

其實,除了

^

!

+

#

可以表示組合鍵之外,

其他的

{...}

形式的符号都隻是按順序敲擊鍵盤罷了,

比如:

^{HOME}

表示按下

Ctrl

的同時按下

HOME

鍵,

{Ctrl}{HOME}

則表示按下

Ctrl

松開,然後按下

HOME

鍵。

若是想要實作組合鍵的功能,可以使用

{Ctrl Down}

{Ctrl Up}

這種組合,

表示按下和松開

{Ctrl}

鍵,在這兩個之間的符号都會在按住

Ctrl

的情況下執行。

也就是說:

^{HOME}

=

{Ctrl Down}{HOME}{Ctrl Up}

!=

{Ctrl}{HOME}

注:支援的Send鍵清單見官方文檔,

但是要注意的是除了官方文檔提供的按鍵可以使用

{...}

形式,

其他的按鍵都不可以使用,如

{a}

就是一種錯誤的表達方式

另外,Send後的部分可以分多行以便于閱讀,隻要用括号括起來就可以:

^j::
  Send,
    (
      Line 1
      Line 2
      A dobe
    )
Return
           

參考連結:

https://autohotkey.com/docs/Tutorial.htm