2013-05-01 431 views
1

我試圖設置一組keybinds,我可以用一個按鈕按下來切換,但一直沒能找到任何地方的例子。如何打開和關閉一組keybinds?

我想^ NumpadSub切換這些不同的keybinds來打開和關閉時,我按^ NumpadSub。

q::w 
z::s 
w::up 
s::down 

任何人都可以幫助我如何設置代碼來做到這一點?

回答

3

當這些是唯一的,你可以添加一個快捷鍵:

^NumpadSub::Suspend 

這將暫停所有熱鍵(除了用於切換的一個暫停開/關)

否則你將不得不使用實際的熱鍵功能(http://www.autohotkey.com/docs/commands/Hotkey.htm),它允許您打開/關閉熱鍵,但熱鍵功能是指標籤:(去地址)。

如果您只想在使用某個特定應用程序(遊戲)時使用這些鍵,則可以使用#IfWinActive命令。

例如

SetTitleMatchMode, 2 
#IfWinActive, Notepad ; Start of Notepad specific keys. 
a::Send, Haha 
b::SoundBeep, 500, 500 
#IfWinActive ; End of Notepad specific keys. 

在這種情況下,看看這是否適合你!我加$在W前的跡象,並是因爲打Q和Z會引發w的執行和S

Hotkey, q , MyQ, On 
Hotkey, z , MyZ, On 
Hotkey, $w , MyW, On 
Hotkey, $s , MyS, On 
Return 

^NumpadSub:: 
KeyToggle:=!KeyToggle 
Hotkey, q , % (KeyToggle ? "Off": "On") 
Hotkey, z , % (KeyToggle ? "Off": "On") 
Hotkey, $w , % (KeyToggle ? "Off": "On") 
Hotkey, $s , % (KeyToggle ? "Off": "On") 
Return 

MyQ: 
SendInput, w 
Return 

MyZ: 
SendInput, s 
Return 

MyW: 
SendInput, {Up} 
Return 

MyS: 
SendInput, {Down} 
Return 
+0

我已經有很多設置熱鍵,也已經有一個#IfWinActive設立遊戲我正在做這些。 我需要的是一個鍵來切換這4個變化,然後當我再次按下這個鍵時切換回正常狀態。有什麼方法可以爲我解決這個問題嗎?我嘗試從你發送的鏈接,但無法弄清楚。 – 2013-05-01 10:17:01

+0

爲您添加了一些其他代碼! – 2013-05-01 11:22:46

+0

嗯,當我推動^ NumpadSub時,它會彈出Error:Nonexistant Hotkey,具體爲:q,並指向下面的行:Hotkey,q,%(KeyToggle?「Off」:「On」)我刪除了該行, z和我一樣,剩下的就是假設。你知道爲什麼嗎?非常感謝您的幫助! – 2013-05-01 19:28:10