AutoHotKey
可藉由儲存變數、處理條件分歧、遞迴與呼叫函式達成更複雜的操作
範例
code:ahk
^+r::Reload ; Ctrl + Shift + r
!x::ExitApp ; Alt + x
^!f:: ; Ctrl + Alt + f
MouseGetPos, xpos, ypos
MsgBox, The cursor is at X%xpos% Y%ypos%.
return
::左側
觸發 function 的按鍵
::
function 內容
return
結束 function
撰寫
Remap
除了鍵盤按鍵外,也可以remap滑鼠按鍵或手把按鍵
只於特定程式remap按鍵
#IfWinActive
#IfWinExist
可利用AHK附屬的Window Spy觀察個別程式詳細資訊
Hotstring
改以指定的文字輸入觸發操作
code:ahk
::kita-::
Clipboard = キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
Send,^v
Return
輸入完畢後,需要再輸入終止文字才會觸發
預設終止文字為-()[]{}':;"/\,.?!{Enter}{Space}{Tab}
可使用#Hotstring EndChars修改終止文字
改為*便不須輸入終止文字
可設定是否要取代原始輸入文字,或是否無視大小寫差異
統一進行設定
#Hotstring
於指令個別設定
於指令前方的:間加入參數
:*:btw::by the way
Mouse and Keyboard Input
Send, Keys
一般模式
將以{}包住的特殊按鍵,或是如^c的修飾按鍵轉換成特殊功能
SendRaw, Keys
原始輸入模式
直接依照參數內容送出
一般模式下使用{Raw}標注也會變為此模式
SendInput, Keys、SendPlay, Keys、SendEvent, Keys
使用不同實作方式送出按鍵
Send預設為SendEvent
使用WindowAPI的keybd_event和mouse_event
大小寫會視為不同按鍵
如Send, ABC與Send, abc會依其大小寫送出
修飾按鍵
table:修飾按鍵
^ Ctrl
+ Shift
! Alt
# Win
特殊按鍵
table:特殊按鍵
{LCtrl} 左側Ctrl鍵
{LWin} 左側Win鍵
{LButton} 滑鼠左鍵
{RButton} 滑鼠右鍵
{MButton} 滑鼠中鍵
{Clickoptions} 進行點擊操作,options與Click相同
Click[, Button, up/down, x, y, count, rel]
table:Button
LEFT 左鍵 L 預設值
RIGHT 右鍵 R
MIDDLE 中鍵 M
WheelUp 滾輪上滑 WU
WheelDown 滾輪下滑 WD
X1 擴充鍵1
X2 擴充鍵2
Down/D會保持按住不放
Up/U會於按下後放開
Count設為0會只移動游標
Rel設定為Relative或Rel會改為以現在游標位置為起點
執行程式
Run, Target[, WorkingDir, Max|Min|Hide/UseErrorLevel, OutputVarPID]
Snippet
code:script.ahk
; ^: Ctrl
; +: Shift
; !: Alt
Process, Priority,, Realtime
SendMode, Input
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode, 2
^+r::Reload ; Ctrl + Shift + r
!x::ExitApp ; Alt + x
; --------------------
; ^e::Send, {AppsKey}
; ^q::Send, {RButton}
; ^q::Send, {AppsKey}
; WheelUp::return
; WheelDown::return
; Holding LButton using XButton1 (side button) in AutoHotKey
; XButton2 Up::bT := false
; XButton2::
; bT := true
; While( bT )
; {
; Send, {WheelUp}
; Sleep, 50
; }
; Return
; XButton1 Up::bT := false
; XButton1::
; bT := true
; While( bT )
; {
; Send, {WheelDown}
; Sleep, 50
; }
; Return
; --------------------
; ^!f:: ; Ctrl + Alt + f
; MouseGetPos, xpos, ypos
; MsgBox, The cursor is at X%xpos% Y%ypos%.
; return
; ^!a:: ; Ctrl + Alt + a
; Send {F1}
; Send {F2}
; Click, 900, 818
; return
; d::
; Send {Delete}
; return
; --------------------
^+q::
xonar_window := "Xonar Essence STX Audio Center"
2s := "2スピーカー"
h := "ヘッドフォン"
equalizer_window := "Equalizer APO 1.2.1 Configuration Editor"
DetectHiddenText, On
Run, "C:\Program Files\ASUS Xonar Essence STX Audio\Customapp\AsusAudioCenter.exe"
WinWait, %xonar_window%
IfWinNotActive, %xonar_window%, , WinActivate, %xonar_window%
WinWaitActive, %xonar_window%
WinGetText, vText, %xonar_window%
IfInString, vText, %2s%, ControlSend, ComboBox5, {Home}
; IfInString, vText, 2 Speakers, ControlSend, ComboBox5, h
else IfInString, vText, %h%, ControlSend, ComboBox5, 2
; else IfInString, vText, Headphone, ControlSend, ComboBox5, 2
WinClose
Run, Editor.exe, C:\Program Files\EqualizerAPO
WinWait, %equalizer_window%
IfWinNotActive, %equalizer_window%, , WinActivate, %equalizer_window%
WinWaitActive, %equalizer_window%
Click, LEFT, 78, 128
WinClose
Return