То, что вы конкретно ищете, может быть невозможно с помощью API.
При вызове PressMouseButton(1)
это меняет состояние левой кнопки мыши.когда вы вызываете ReleaseMouseButton(1)
, то же самое верно, даже если вы все еще нажимаете кнопку, сценарий увидит ее как выпущенную.Это означает, что вы не можете использовать IsMouseButtonPressed(1)
для обнаружения, если кнопка все еще нажата.
Чтобы создать «щелчок», вам нужно будет использовать PressAndReleaseMouseButton(1)
, и с этим вы больше не сможете обнаружить, когда ВЫ прекратите нажимать кнопку мыши.В качестве альтернативы вы можете посмотреть на клавишу ctrl и посмотреть, нажата ли она по-прежнему, используя IsModifierPressed("ctrl")
.
Следующее должно повториться после того, как будет обнаружен левый щелчок с нажатой клавишей Ctrl и завершиться только после отпускания Ctrl.:
function OnEvent(event, arg, family)
OutputLogMessage("clicked event = %s, arg = %s\n", event, arg);
if event == "MOUSE_BUTTON_PRESSED" and arg == 1 and Ctrl_Down == 1 then
repeat
PressAndReleaseMouseButton(1) --repeat while the ctrl is still pressed
until not IsModifierPressed("ctrl")
end
end
Эта информация основана на Logitech серии G Lua API V3.02 .