当我点击左键并按住鼠标时,我想更改鼠标的输入。 通常的左键单击操作必须保留。让左键单击按原样运行,但如果单击并按住,则执行类似按住键盘按钮P(或任何其他键盘按钮)的操作。
目前我得到的是:
~LButton::
sleep 100
While (Getkeystate("LButton","P"))
{
Send, {M down}
}
Send, {M up}
Return
我想弄清楚当我想要垃圾信件M时如何删除点击操作。
答案 0 :(得分:1)
以下应该做你想做的事:
threshold := 100
LButton::
CoordMode, Mouse, Screen ; needed to prevent some issues when clicking changes focus
MouseGetPos, mXclick, mYclick ; save mouse position before sleep
sleep % threshold
; mouse up, do normal click
if (!GetKeyState("LButton", "P")) {
MouseGetPos, mXcurr, mYcurr ; save mouse position before click
Click %mXclick%, %mYclick%
MouseMove, %mXcurr%, %mYCurr% ; restore mouse position
return
}
while (GetKeyState("LButton", "P")) {
Send {M down}
Sleep 30
}
Send {M up}
return
您可以使用threshold
,尝试不同的值并查看其工作原理。此外,可能不需要所有MouseGetPos
和MouseMove
,具体取决于您希望发生的事情。
目前doubleClick也会有点问题,你需要比threshold
慢一点,但要足够快以注册一个doubleClick。这可能是可以解决的,所以告诉我你是否需要它。