autohotkey 如何重新映射鼠标左键单击保持操作
autohotkey how to remap mouse left click hold action
我想在按住鼠标左键时更改鼠标输入。
通常的左键单击操作必须保留。让左键单击按原样运行,但如果您单击并按住,让它执行类似于按住键盘按钮 P(或任何其他键盘按钮)的操作。
目前我得到的是这样的:
~LButton::
sleep 100
While (Getkeystate("LButton","P"))
{
Send, {M down}
}
Send, {M up}
Return
我想弄清楚当我只想发送垃圾邮件 M 时如何删除点击操作。
下面应该做你想做的:
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 慢但足够快才能注册 doubleClick。这可能可以解决,如果您需要,请告诉我。
我想在按住鼠标左键时更改鼠标输入。 通常的左键单击操作必须保留。让左键单击按原样运行,但如果您单击并按住,让它执行类似于按住键盘按钮 P(或任何其他键盘按钮)的操作。
目前我得到的是这样的:
~LButton::
sleep 100
While (Getkeystate("LButton","P"))
{
Send, {M down}
}
Send, {M up}
Return
我想弄清楚当我只想发送垃圾邮件 M 时如何删除点击操作。
下面应该做你想做的:
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 慢但足够快才能注册 doubleClick。这可能可以解决,如果您需要,请告诉我。