web-dev-qa-db-ja.com

キーストロークとマウスクリックを組み合わせたLogitechスクリプト

左マウスボタンで左コントロールキーを同時に押したときに左マウスボタンを繰り返しクリックするスクリプトを作成しようとしています

これは私がこれまでに持っているものです:

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
      PressMouseButton(1) //repeat while the left mouse button down
      until not PressMouseButton(1)
     else ReleaseMouseButton(3) //stop the repating on left mouse button up
  end

end  

どんな助けも大歓迎ですので、これはこのタイプのコーディングを初めて見ることに注意してください

5
Shrroy

あなたが特に探しているものは、APIでは不可能かもしれません。

PressMouseButton(1)を呼び出すと、マウスの左ボタンの状態が変更されます。 ReleaseMouseButton(1)を呼び出すと、ボタンを押したままであっても、スクリプトは解放されたと見なします。つまり、IsMouseButtonPressed(1)を使用して、ボタンがまだ押されているかどうかを検出することはできません。

「クリック」を作成するには、PressAndReleaseMouseButton(1)を使用する必要があります。これを使用すると、いつ[〜#〜] you [〜#〜]マウスボタンの押下を停止するかを検出できなくなります。 。別の方法として、IsModifierPressed("ctrl")を使用して、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に基づいています。

0
Nifim