Сценарий Logitech G Hub LUA переключается в соответствии с последним состоянием - PullRequest
0 голосов
/ 13 апреля 2020

Только что получил новую мышь Logitech, я хотел бы сделать скрипт для переключения между состояниями. По существу, есть кнопка мыши, циклически изменяющая то, что она выводит. Я никогда не делал сценарий lua, поэтому была бы признательна за помощь. В основном пример того, что я хочу, - это

    #set default state
    state = F9;
    if (state == f9)
    when mouse4 is pressed send f10
    state = f10;

    if (state == f10)
    when mouse4 is pressed send f9
    state = f9;

Надеюсь, это имеет смысл. Если есть способ сделать это с помощью сценариев Logitech G Hub lua, было бы замечательно, если бы кто-то мог показать мне, как должен выглядеть сценарий. Я думаю, что либо это, либо даже Auto Hot Key могли бы сделать это.

РЕДАКТИРОВАТЬ: Спасибо, Егор, хорошо, поэтому я собрал версию, которая работает (или должна работать) с двумя кнопками. То, что я пытаюсь сделать sh, это то, что вы нажимаете мышь 11, и она переключается между возвратом либо f7, либо f8, в зависимости от того, что последний раз вернул. Я добавил еще одну кнопку, мышь 10, которая затем должна переключаться между f7 и f9 также в зависимости от того, что было нажато в последний раз. Однако по какой-то причине раздел для мыши 11 не переключается между двумя и возвращает только f9

local current_state_m4 = "f7"
local next_state_m4 = {f8 = "f7", f7 = "f8"}

local current_state_m5 = "f9"
local next_state_m5 = {f9 = "f7", f7 = "f9"}

function OnEvent(event, arg)
   if event == "MOUSE_BUTTON_PRESSED" and arg == 11 then
    PressKey(current_state_m4)
    Sleep(30)
    ReleaseKey(current_state_m4)
    current_state_m4 = next_state_m4[current_state_m4]

    elseif event == "MOUSE_BUTTON_PRESSED" and arg == 10 then
    PressKey(current_state_m5)
    Sleep(30)
    ReleaseKey(current_state_m5)
    current_state_m4 = next_state_m5[current_state_m5]
  end
end

1 Ответ

1 голос
/ 13 апреля 2020
local current_state = "f9"
local next_state = {f10 = "f9", f9 = "f10"}

function OnEvent(event, arg)
   if event == "MOUSE_BUTTON_PRESSED" and arg == 4 then
      current_state = next_state[current_state]
      PressKey(current_state)
      Sleep(30)
      ReleaseKey(current_state)
   end
end
...