我想为鼠标按钮指定一些组合键。
我将使用'vk1Dsc07B'作为虚拟前缀键, 我会用'v'作为LButton,'c'作为MButton,'x'作为RButton。
我尝试了几种方法,但我失败了。我可以点击,但是,我不能正确拖动。 一旦我尝试拖动一个对象,指针抓住并每0.1秒释放一次。 我想,问题是重复发送的关键事件与鼠标按钮不同。我正在寻找代码如下:
这是我的一个代码:
vk1Dsc07B::Return ; deactivate 'Muhenkan' key in order to use it just as a prefix key
vk1Dsc07B & v::Click,L,D Return
vk1Dsc07B & c::Click,M,D Return
vk1Dsc07B & x::Click,R,D Return
vk1Dsc07B & v Up::Click,L,U Return
vk1Dsc07B & c Up::Click,M,U Return
vk1Dsc07B & x Up::Click,R,U Return
另一个样本:
vk1Dsc07B::Return ; deactivate 'Muhenkan' key in order to use it just as a prefix key
vk1Dsc07B & v::Send {Blind}{LButton down}
vk1Dsc07B & c::Send {Blind}{MButton down}
vk1Dsc07B & x::Send {Blind}{RButton down}
vk1Dsc07B & v Up::Send {Blind}{LButton up}
vk1Dsc07B & c Up::Send {Blind}{MButton up}
vk1Dsc07B & x Up::Send {Blind}{RButton up}
也许大多数人都没有“vk1Dsc07B”键,所以请将其替换为某个键。
很高兴听到任何想法:)
此致
答案 0 :(得分:0)
您要实现的目标是重新映射 两个键到一个。 AutoHotkey文档说:
虽然无法将一对键重新映射到单个键(例如,写一个& c :: b无效),但可以通过显式添加上下热键[link]来实现此效果
所以,你的第二个解决方案实际应该有效:
vk1Dsc07B::return ; you don't need this line. vk1Dsc07B is deactiated by default because of the other hotkeys
vk1Dsc07B & v::Send {Blind}{LButton down}
vk1Dsc07B & v Up::Send {Blind}{LButton up}
; and you need the `{Blind}` keyword here, do you??
,但事实并非如此。这仅适用于send {a down}
等“普通”键。问题是当您按住vk1Dsc07B & v
时,{LButton down}
将重复发送。这导致“指针抓取并每0.1秒释放一次”。
因此,我们将不得不寻找另一种方法,尝试在触发热键时只发送一次{LButton down}
。
我想出了以下解决方案,它将热键触发器存储在一个变量中:
Ltriggered := false
Mtriggered := false
Rtriggered := false
vk1Dsc07B & v::
if(!Ltriggered) {
Send {LButton down}
Ltriggered := true
}
return
vk1Dsc07B & v Up::
Send {LButton up}
Ltriggered := false
return
vk1Dsc07B & c::
if(!Mtriggered) {
Send {MButton down}
Mtriggered := true
}
return
vk1Dsc07B & c Up::
Send {MButton up}
Mtriggered := false
return
vk1Dsc07B & x::
if(!Rtriggered) {
Send {RButton down}
Rtriggered := true
}
return
vk1Dsc07B & x Up::
Send {RButton up}
Rtriggered := false
return