【发布时间】:2022-01-28 01:47:16
【问题描述】:
我想制作一个简单的脚本,当我按住鼠标右键时,鼠标会自动释放并按下鼠标右键。但是我遇到了一个棘手的问题。
Lua 代码:
function OnEvent(event, arg)
OutputLogMessage("Event: "..event.." Arg: "..arg.."\n")
repeat
ReleaseMouseButton(3)
OutputLogMessage("RELEASED.\n")
Sleep(300)
rbPressed = IsMouseButtonPressed(3)
PrintBool(rbPressed)
--PressMouseButton(3)
OutputLogMessage("PRESSED.\n")
until not rbPressed
end
当我如上所述注释掉PressMouseButton(3)时,在足够的时间(>300ms)按下鼠标右键并释放按钮,我得到以下日志:
事件:MOUSE_BUTTON_PRESSED Arg:2
已发布。
是的
已按下。
已发布。
真的
已按下。
已发布。
假的
已按下。
事件:MOUSE_BUTTON_RELEASED Arg:2
已发布。
假的
按下。
你可以看到释放后的rbPressed是True,这似乎是鼠标按键的状态,而不是模拟的释放动作。但是,rbPressed 变为 False 与 PressMouseButton(3) 行。日志:
事件:MOUSE_BUTTON_PRESSED Arg:2
已发布。
错误
已按下。
事件:MOUSE_BUTTON_RELEASED Arg:2
已发布。
假的
按下。
这怎么可能?由于PressMouseButton(3) 行在IsMouseButtonPressed(3) 行之后,它不应该影响rbPressed 的FIRST 输出。
【问题讨论】:
标签: lua mouse script logitech logitech-gaming-software