在指定的程式下使用AutoHotKey 執行快速鍵 - Poy Chang

文章推薦指數: 80 %
投票人數:10人

有了 .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→



請為這篇文章評分?