我最近才在休息几年后才重新使用AHK,所以请原谅我,如果有一个非常简单的答案。
我正在编写一个脚本,在按住控件的同时跟踪按键,然后允许9个热键中的一个使用2个按键,这样按两次Q将激活1-1热键,W然后Q将激活1-2热键等。
我的问题是检查是否使用LControl的热键阻止控制将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发送到系统。
答案 0 :(得分:0)
想出来。
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
}