Как улучшить работу этого сценария LUA для мыши Logitech?

Я хочу сделать простой макрос в LUA для мыши Logitech. Я полный новичок и просто склеил несколько строк из нескольких источников.


    EnablePrimaryMouseButtonEvents(true);

    function OnEvent(event, arg)
 if IsKeyLockOn("numlock" )then
    if IsMouseButtonPressed(3)then
                            repeat  
                if IsMouseButtonPressed(1) then
     repeat
                              PressKey("P")
                                                     MoveMouseRelative(0,13)
                    Sleep(10)
                                                      MoveMouseRelative(0,13)
                                Sleep(10)
                                                      MoveMouseRelative(0,13)
                                Sleep(10)
                                                      MoveMouseRelative(0,13)
                                Sleep(10)
                    MoveMouseRelative(0,13)
                                Sleep(10)
                                    ReleaseKey("P")

                    Sleep(200)
                                until not IsMouseButtonPressed(1)
                end 
            until not IsMouseButtonPressed(3)

        elseif not IsMouseButtonPressed(3)then
                            repeat  
                if IsMouseButtonPressed(1) then
            repeat
                              PressKey("P")
                                                     MoveMouseRelative(0,15)
                                Sleep(30)
                                                     MoveMouseRelative(0,12)
                                Sleep(10)
                                                     MoveMouseRelative(0,12)
                                Sleep(10)
                                                    MoveMouseRelative(0,12)
                                Sleep(10)
                                                    MoveMouseRelative(0,12)
                                     Sleep(130)
                                    ReleaseKey("P")
                    Sleep(200)
                                until not IsMouseButtonPressed(1)
                end 
            until  IsMouseButtonPressed(3)
        end
end
end

Во-первых, это похоже на беспорядок, но вроде работает, извините, я в этом полный новичок. Теперь проблемы, которые у меня возникают, в том, что;

  1. Я использовал numlock, чтобы включить или отключить все это, потому что я не мог понять, как включить и выключить его с помощью одного MouseButtonKey, он либо играл вечно, либо я сломал все это. Это нормально, если бы не странная ошибка, когда после выключения numlock мне приходилось нажимать MouseButton 2, чтобы выключить его по какой-то причине.

  2. Я думал, что то, чего я хочу достичь, будет очень простым, я хочу иметь 4 функции, которые;

Function 1 MoveMouseRelative repeated every ()ms
Function 2 MoveMouseRelative repeated every ()ms
Function 3 PressKey("P") repeated every ()ms
Function 4 PressKey("P") repeated every ()ms

И объедините это так: если я нажму MouseButtonPressed (1), он выполняет функцию 1 + 3, поэтому он одновременно нажимает P и перетаскивает мышь вниз, но с разными интервалами sleep (), которые будут указаны в отдельных функциях, а если я нажмите и MouseButtonPressed (3) (щелкните правой кнопкой мыши) + MouseButtonPressed (1) вместо этого он будет выполнять 2 + 4 функции и будет повторяться при удерживании и перестанет повторяться, если я отпущу кнопки.

Это вообще возможно? Я втянулся в этот код и не могу перестать думать, как исправить на прошлой неделе, но, не имея образования и просто догадываясь, как все закончится, я наткнулся на стену, которую не могу пробить.

Большое спасибо за любую помощь, если вообще.


person Melonele    schedule 14.05.2020    source источник


Ответы (1)


person    schedule
comment
Вы такой замечательный человек, я сомневался, что кому-то удастся ухватить эти скромные линии, которые я склеил вместе, они так хорошо работают. У меня есть один вопрос, потому что теперь и ЛКМ, и ПКМ + ЛКМ используют задержку 200 мс, есть ли возможность разбить ее, чтобы я мог использовать разные значения для ЛКМ и ПКМ + ЛКМ - person Melonele; 15.05.2020