F3我有一個 AutoHotKey 腳本,當我按住時應該按下Ctrl,F2當我鬆開時按下Ctrl。
我目前的腳本:
$ctrl::
Suspend, On
Send, {F3}
While (GetKeyState("Ctrl",P))
{
}
Send, {F2}
Suspend, Off
Return
但當我按住時Ctrl,它什麼也沒做。當我釋放時Ctrl,它同時擊中F3和F2。有人可以告訴我如何解決這個問題嗎?
答案1
此程式碼提供您想要的功能:
$~ctrl::
send {f3}
keyWait, ctrl
send {f2}
return
答案2
這按鍵熱鍵選項似乎正是您所需要的。
這是經過測試的工作代碼:
Ctrl::
Send {F3}
keywait, Ctrl, L ; prevent F3 from firing while Ctrl is being held down.
return
Ctrl Up::Send {F2}
答案3
通過:http://www.autohotkey.com/docs/commands/Send.htm
若要按住或釋放某個鍵:將鍵的名稱括在大括號中,後面接著「Down」或「Up」一詞。例如:
發送{b down}{b up}
發送{TAB down}{TAB up}
發送{Up down} ;按下向上箭頭鍵。
睡眠1000;按住它一秒鐘。
發送> {向上} ;釋放向上箭頭鍵。
當透過上述方法按住某個鍵時,它不會像您實際按住它一樣開始自動重複(這是因為自動重複是驅動程式/硬體功能)。但是,可以使用循環來模擬自動重複。以下範例傳送 20 個 Tab 鍵擊:
Loop 20 {
Send {Tab down} ;自動重複由連續的向下事件組成(沒有向上事件)。
睡眠 30 ;擊鍵之間的毫秒數(或使用 SetKeyDelay)。
}
發送 {Tab 向上} ;鬆開鑰匙。
也可以使用“DownTemp”一詞。除了修飾鍵(Control/Shift/Alt/Win)之外,其效果與 Down 相同。在這些情況下,DownTemp 會告訴後續發送該按鍵並未永久按下,並且可以在按鍵需要時釋放。例如,發送 {Control DownTemp} 後跟發送 a 將產生正常的「a」擊鍵,而不是 Control-A 擊鍵。