#lua #logitech #logitech-gaming-software
Вопрос:
Я пытаюсь исправить свой сценарий, поэтому, когда я нажимаю кнопку мыши 4, она переключается, удерживая левую кнопку мыши, и если я нажму левую кнопку мыши во время переключения, она щелкнет, а затем продолжит удерживать левую кнопку мыши, если я не выключу ее кнопкой мыши 4.
toggle_button = 4 -- What mouse button should control the toggle
button_to_toggle = 1 -- What mouse button to toggle
toggle = false
EnablePrimaryMouseButtonEvents(true)
function OnEvent(event, arg)
if (event == "MOUSE_BUTTON_PRESSED" and arg == toggle_button) then
toggle = not toggle
OutputLogMessage("Mouse %d toggled %s n", button_to_toggle, tostring(toggle))
elseif toggle and (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
OutputLogMessage("Mouse 1 pressed n")
PressAndReleaseMouseButton(1)
elseif toggle then
PressMouseButton(button_to_toggle)
else
ReleaseMouseButton(button_to_toggle)
end
end
По какой-то причине мой сценарий вроде как работает. Левая кнопка мыши во время переключения работает только иногда, но в большинстве случаев не будет повторно включать переключатель мыши 1. Как мне очистить и исправить свой сценарий?
Комментарии:
1. Какого поведения вы хотите добиться при нажатии кнопки MB1 во время ее переключения?
2. Я бы хотел, чтобы он щелкнул левой кнопкой мыши, а затем вернулся к переключению, поэтому наведите курсор вверх, а затем снова вниз.
Ответ №1:
Шаг 1.
Вы собираетесь изменить поведение левой кнопки мыши.
Это является потенциально опасной операцией: вы можете делать практически ничего на вашем компьютере без ЛКМ.
Поэтому необходимо создать «запасной ЛКМ».
Например, если вы не используете кнопку мыши 8, вы можете сделать это вести себя как клон на ЛКМ.
Перейти на большую картинку мышкой в ЛГС и назначить команде «левой кнопкой мыши», чтобы ваше физическое МБ#8.
Теперь, если что-то пойдет не так и ваш ЛКМ перестает работать, вы можете нажать МБ#8 вместо ЛКМ.
Шаг 2.
Перейдите к изображению большой мыши в LGS.
Отмените назначение стандартной команды «Щелкните левой кнопкой мыши» на физическом МБ № 1 (выберите «Отменить назначение» в раскрывающемся меню).
Вы увидите предупреждение о потенциально опасной операции.
Разрешите эту операцию, потому что у вас есть «запасной ЛМБ», если что-то пойдет не так.
Шаг 3.
Ваш MB#1 сейчас не работает (пока вы не сохранили сценарий), поэтому используйте MB#8 вместо MB#1 в графическом интерфейсе LGS.
Установите сценарий:
local pressed
function OnEvent(event, arg)
if event == "PROFILE_ACTIVATED" then
EnablePrimaryMouseButtonEvents(true)
elseif event == "PROFILE_DEACTIVATED" then
ReleaseMouseButton(1)
elseif event == "MOUSE_BUTTON_PRESSED" and arg == 4
or (event == "MOUSE_BUTTON_PRESSED" or event == "MOUSE_BUTTON_RELEASED") and arg == 1 then
pressed = not pressed
;(pressed and PressMouseButton or ReleaseMouseButton)(1)
end
end
Комментарии:
1. Спасибо за подробный код. Ваш код кажется более отзывчивым и хорошо работающим, но я больше не могу удерживать мышь 1, когда переключатель отключен, он действует только как щелчок. Как заставить мою мышь 1 действовать как обычную мышь, когда переключатель отключен?
2. @derkamo — Ответ изменен.