在指定的程式下使用AutoHotKey 執行快速鍵 - Poy Chang
文章推薦指數: 80 %
有了 .ahk 指令檔,你可以直接執行該檔案來啟動AutoHotKey,或者可以使用安裝目錄中 Compiler 資料夾下的 Ahk2Exe.exe ,將指令檔封裝成一個可執行的 .exe ...
Togglenavigation
PoyChang
Home
About
Categories
Home
About
Categories
List
OnGitHub
TopofPage
TrialandError
About
Categories
List
Feed
RecentPosts
12Aug»
在Azure上玩DockerforLinux是一件很棒的事
26Jul»
在VisualStudio中自訂檔案巢狀結構
25Jul»
使用C#和JavaScript處理Base64編碼和解碼
12Jul»
使用Microsoft.Data.SqlClient連線資料庫發生憑證錯誤
08Jun»
匯出LINQPad資料庫連線至新機器
19May»
不使用第三方套件來序列化/反序列化JSON物件
26Apr»
在TeamsWebhook訊息中@標註某個人或頻道
25Apr»
使用AdaptiveCards發送訊息到MicrosoftTeamsWebhook
22Apr»
使用QRCode發送簡訊、加入Wi-Fi、遞名片
11Apr»
讓GitHubPages能支援不區分大小寫網址的能力
MicrosoftMVP2018-2021
STUDY4
AngularTaiwan
在指定的程式下使用AutoHotKey執行快速鍵
February
2nd,
2021
一直久聞AutoHotKey的強大,但沒有真的下去玩玩看,最近遇到一些情境滿適合的,就稍微來研究看看這套使用C++撰寫的自由軟體,看看他能否解決我所遇到的狀況。
簡介
AutoHotKey可以讓我們自訂各種快速鍵或巨集程式,來控制鍵盤和滑鼠的動作,藉由寫一隻副檔名為.ahk的指令檔,建立各種快速鍵,加速我們的操作。
有了.ahk指令檔,你可以直接執行該檔案來啟動AutoHotKey,或者可以使用安裝目錄中Compiler資料夾下的Ahk2Exe.exe,將指令檔封裝成一個可執行的.exe檔,讓你可以拿到沒有安裝AutoHotKey的電腦上執行。
常用的兩種基本模式:
HotString
HotKey
下面來看看幾個簡單範例。
HotString
HotString是輸入一組特定的文字,然後自動帶出完整文字,像是寫程式時常用的CodeSnippet一樣。
;HotString範例
:*:poy@::[email protected]
關鍵字
觸發符號
說明
:O:YOUR_HOT_STRING::
空白
:O:表示必須按觸發符號以替換文字,但不輸出觸發符號;O代表Omit(忽略)的意思
:*:YOUR_HOT_STRING::
無
:*:表示不需要觸發符號,完成輸入後立刻替換內容
:B0:YOUR_HOT_STRING::
空白
:B0:可取消AutoHotkey預設觸發後自動刪除關鍵字的功能
:*B0:YOUR_HOT_STRING::
無
再多加一個星號就能不使用觸發符號,且不會多出一個空白
預設觸發符號可以是空白鍵、Tab或Enter。
HotKey
HotKey就是我們常聽到的快捷鍵,設定方式也很簡單,只是要先知道怎麼使用對應的特殊鍵,像是下面這個例子就是設定Ctrl+K這組快速鍵,當偵測到這組快速鍵的時候,就會執行Send這個命令,輸入Hello{Tab}World{Enter}{#}1字串,而這字串中夾雜了一些按鍵,例如{Tab}就是輸出Tab、{Enter}就是輸出Enter(這段像是廢話…)。
要注意的是,當我們要輸出一些特殊符號像是#時,要用大括號包起來,也就是用{#}替代。
^k::SendHello{Tab}World{Enter}{#}1
特殊鍵
^
Ctrl鍵
!
Alt鍵
+
Shift鍵
#
Win鍵
&
用&可組合兩個按鍵,例如:LButton&a表示按左鈕不放,同時再按a鍵
按鍵
{Enter}
Enter鍵
{Escape}或{Esc}
Escape鍵
{Tab}
Tab鍵
{Backspace}或{BS}
倒退鍵
{Delete}
刪除鍵
{Insert}
插入鍵
{Up}、{Down}、{Left}、{Right}
方向鍵
{PgUp}、{PgDn}
換頁鍵
{CapsLock}
大寫鍵
{NumLock}
數字鎖定鍵
{Ctrl}、{LCtrl}、{RCtrl}
控制鍵與左、右控制鍵
{Alt}、{LAlt}、{RAlt}
Alt鍵與左、右Alt鍵
{LButton}、{MButton}、{RButton}
滑鼠左、中、右鈕
{WheelDown}、{WheelUp}
滑鼠滾輪向下與向上
在指定程式下運作
這裡就是我想要的重頭戲,主要有兩個功能:
變數
指定程式
下面範例建立了兩個變數,並用:=來設定該變數的值,並使用#IfWinActive這個標示出下面區塊的設定只會在Notepad這支程式下才生效。
#IfWinActive會去檢查當前的視窗是否是你想要執行的目標視窗,那他是怎麼檢查的呢?他會根據你所設定的WinTitle去檢查是否符合你設定的目標,常用ahk_class(視窗類別,用此檢查視窗名稱)和ahk_exe(程序名稱或路徑)來指定,參考列表如下:
參數
行為
A
當前視窗
ahk_class
視窗類別
ahk_id
唯一的ID/HWND
ahk_pid
程序ID
ahk_exe
程序名稱/路徑
ahk_group
視窗群組
這樣我們就可以寫出像下面這樣的指令碼:
account:="MY_ACCOUNT"
password:="MY_PASSWORD"
#IfWinActive,ahk_classNotepad
^l::
Send%account%{Tab}%password%{Tab}{Enter}
return
簡單說明一下,上面的指令碼建立了兩個變數,帳號和密碼,然後在特定的程式下(Notepad)可以使用Ctrl+L快速輸入%account%{Tab}%password%{Tab}{Enter}這個動作,也就是輸入帳號>按Tab換到下個欄位>輸入密碼>按Tab換到下個按鈕>按Enter送出。
其他
自動啟動
要設定開機自動啟動指定的.ahk的指令檔,只需要在下面這個資料夾中,將你的指令檔複製進去,或是在裡面建立指定檔的捷徑,這樣開機時就會自動啟動了。
C:\Users\username\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup
上述路徑記得將username改成你自己的帳戶名稱。
測試
編輯指令檔後必須重新啟動或載入才有辦法測試,這邊我通常會從系統列中的AutoHotKey的圖示上按右鍵,執行ReloadThisScrip來重新載入指令檔。
參考資料:
AutoHotkey官方文件
AutoHotkey簡體中文文件
輕鬆學會彈指神功-揭露AutoHotkey絕技
Tools(125)
SharePost
Twitter
Facebook
Google+
PoyChang
TrialandError
←Previous
Next→
延伸文章資訊
- 1AHK積木 - AHK 語法產生器
下載Autohotkey 並安裝; 組好拼圖後,點擊下載.ahk檔; 開啟該檔案,選擇使用Autohotkey執行; 螢幕右下角出現綠色圖示 代表腳本已成功運行中 ...
- 2AutoHotkey Store Edition - Microsoft Apps
AutoHotkey is a free, open-source custom scripting language for Microsoft Windows, initially aime...
- 3快速参考| AutoHotkey
- 4AutoHotkey 1.1.34.03 免安裝版- 取代按鍵精靈的免費自由軟體
AutoHotkey is a free, open-source utility for Windows. With it, you can: - Automate almost anythi...
- 5在指定的程式下使用AutoHotKey 執行快速鍵 - Poy Chang
有了 .ahk 指令檔,你可以直接執行該檔案來啟動AutoHotKey,或者可以使用安裝目錄中 Compiler 資料夾下的 Ahk2Exe.exe ,將指令檔封裝成一個可執行的 .exe ...