2013-05-01 55 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