再起動やプログラムのコンパイルを行わずに、コマンド ラインまたはホットキーを使用してマウスの主ボタンと副ボタンを交換するにはどうすればよいでしょうか。

再起動やプログラムのコンパイルを行わずに、コマンド ラインまたはホットキーを使用してマウスの主ボタンと副ボタンを交換するにはどうすればよいでしょうか。

私の8歳の息子は左利きで、私は右利きです。コマンドラインからマウスのプライマリボタンとセカンダリボタンをすばやく簡単に切り替えられるようにしたいです。私たちはWindows 10を使用しています。これ、CとC#*のソリューションを提供しています。これこれは再起動を必要とする解決策を提供し、Stack Overflowの回答へのリンクも提供しています。しかし、これはコンパイル言語に頼らずに実行できるはずです。PowerShell、Python、Perl、ニルコユーティリティなどもありますし、コンパイル言語に頼りたくもありません。

助けてくれてありがとう。

編集: 質問を変更して「...またはホットキーを使用して...」を追加しました。これは、最終的に Autohotkey ホットキーを使用してこれを実行したかったためです。Autohotkey 自体でスワップを実行できることがわかりました。回答は、たとえば、Autohotkey ホットキーを使用して呼び出す Powershell スクリプトであると想定していました。承認された回答を参照してください。

答え1

これが私がAHKのために思いついたものです。マウスボタンの再割り当てを切り替えるだけですctrl+alt+m

swap:
swap=false

^!m::
    swap := !swap 

#if !swap
    RButton::LButton
    LButton::RButton

答え2

これは、投稿された回答です。https://superuser.com/a/1357020/790554

これはAutohotkeyのバージョンです(修正/ベース)https://github.com/jNizM/AHK_DllCall_WinAPI/blob/master/src/Mouse%20Input%20Functions/SwapMouseButton.ahk)。

; autohotkey code - mapped to F12
F12::
    buttonState := DllCall("user32.dll\SwapMouseButton", "UInt", 1)
    if buttonState <> 0
    {
        buttonState := DllCall("user32.dll\SwapMouseButton", "UInt", 0)
    }

これはすべての Windows (Windows 10 を含む) で正常に動作します。私は通常、これをキーボードの「F12」キーなどのホットキーにマッピングし (Autohotkey を使用)、キーを押すだけでマウスの左ボタンと右ボタンを瞬時に切り替えることができます。

関連情報