自动热键检查 Ctrl 按下错误
Autohotkey check for Ctrl pressed error
我最近才重新开始使用 AHK,在中断了几年之后,如果对此有一个非常简单的答案,请原谅我。
我正在编写一个脚本,在按住控制键时跟踪按键,然后允许 9 个热键之一与 2 个按键一起使用,这样按两次 Q 将激活 1-1 热键,W 然后 Q将激活 1-2 热键等
我的问题是,使用 LControl 的热键检查是否按下 Control 会阻止 LControl 发送到系统,因此 Ctrl+A 之类的东西不再起作用。
我能想到的唯一解决方案是只将 Q W 和 E 映射为热键一次,每个热键中都有一堆逻辑。
我有更好的方法吗?
LControl:: Set:=4
LControl Up:: Set:=0
#If (Set=4)
{
q:: Set:=1
w:: Set:=2
e:: Set:=3
}
#If (Set=1)
{
q:: SendEvent Different Words Here
w:: SendEvent Different Words Here
e:: SendEvent Different Words Here
}
#If (Set=2)
{
q:: SendEvent Different Words Here
w:: SendEvent Different Words Here
e:: SendEvent Different Words Here
}
#If (Set=3)
{
q:: SendEvent Different Words Here
w:: SendEvent Different Words Here
e:: SendEvent Different Words Here
}
基本上,如何停止 LControl:: 阻止向系统发送 Ctrl。
想通了。
LControl:: ;if ctrl is pressed
Set:=4 ;enter first selection group
SendEvent {Ctrl Down} ;don't interrupt normal hotkeys
Return
LControl Up:: ;if ctrl is released
Set:=0 ;"unbind" q/w/e hotkeys
SendEvent {Ctrl Up} ;and inform the system
Return
#If (Set=4)
{
^q:: Set:=1
^w:: Set:=2
^e:: Set:=3
}
我最近才重新开始使用 AHK,在中断了几年之后,如果对此有一个非常简单的答案,请原谅我。
我正在编写一个脚本,在按住控制键时跟踪按键,然后允许 9 个热键之一与 2 个按键一起使用,这样按两次 Q 将激活 1-1 热键,W 然后 Q将激活 1-2 热键等
我的问题是,使用 LControl 的热键检查是否按下 Control 会阻止 LControl 发送到系统,因此 Ctrl+A 之类的东西不再起作用。
我能想到的唯一解决方案是只将 Q W 和 E 映射为热键一次,每个热键中都有一堆逻辑。
我有更好的方法吗?
LControl:: Set:=4
LControl Up:: Set:=0
#If (Set=4)
{
q:: Set:=1
w:: Set:=2
e:: Set:=3
}
#If (Set=1)
{
q:: SendEvent Different Words Here
w:: SendEvent Different Words Here
e:: SendEvent Different Words Here
}
#If (Set=2)
{
q:: SendEvent Different Words Here
w:: SendEvent Different Words Here
e:: SendEvent Different Words Here
}
#If (Set=3)
{
q:: SendEvent Different Words Here
w:: SendEvent Different Words Here
e:: SendEvent Different Words Here
}
基本上,如何停止 LControl:: 阻止向系统发送 Ctrl。
想通了。
LControl:: ;if ctrl is pressed
Set:=4 ;enter first selection group
SendEvent {Ctrl Down} ;don't interrupt normal hotkeys
Return
LControl Up:: ;if ctrl is released
Set:=0 ;"unbind" q/w/e hotkeys
SendEvent {Ctrl Up} ;and inform the system
Return
#If (Set=4)
{
^q:: Set:=1
^w:: Set:=2
^e:: Set:=3
}