マウスボタンを交換するためのキーボードショートカット


22

私は両手でマウスを使い、快適さの理由で前後に切り替えるのが好きです。ただし、毎回ボタンを交換するためにメニューの約数十億層を通過する必要があるため、これは困難になります。左右のマウスボタンを入れ替える単一のキーボードショートカットを作成する簡単な方法はありますか?

編集:私のOSはWindows 7です。

回答:


19

blsub6が述べたように、レジストリ値を変更できます(バッチファイルから呼び出されるコマンドを使用)。

REG ADD "HKCU\Control Panel\Mouse" /t REG_SZ /v SwapMouseButtons /d 1 /f

または

REG ADD "HKCU\Control Panel\Mouse" /t REG_SZ /v SwapMouseButtons /d 0 /f

ただし、有効にする前にログアウトする必要があります

よりよい解決策は、への回答で説明したように、設定を交換するためにC#で小さな.EXEを作ることで、この質問

これをswapmouse.cs含む、呼び出すことができるテキストファイルを作成します。

using System.Runtime.InteropServices;
using System;

class SwapMouse
{
    [DllImport("user32.dll")]
    public static extern Int32 SwapMouseButton(Int32 bSwap);

    static void Main(string[] args)
    {
        int rightButtonIsAlreadyPrimary = SwapMouseButton(1);
        if (rightButtonIsAlreadyPrimary != 0)
        {
            SwapMouseButton(0);  // Make the left mousebutton primary
        }
    }
}

そしてswapmouse.exe、次のコマンドでコンパイルします:

"%SystemRoot%\Microsoft.NET\Framework64\v3.5\csc" swapmouse.cs

次に、そのexeへのショートカットをダブルクリックして、マウスボタンを交換します。すぐに有効になります。


3
キーボードショートカットでexeを起動するには:1. Right-click on the exe and select "Create Shortcut" 2. Move the shortcut to "C:\ProgramData\Microsoft\Windows\Start Menu" or the desktop 3. Right click on the shortcut, go to the Shorcut tab and select a shortcut key
Rad

5

そのためのアプリは次のとおりです。http//code.google.com/p/mouseswap/

AutoItがインストールされている場合、au3ファイルで実行するスクリプトは次のとおりです。

#NoTrayIcon

HotKeySet( "#a"、 "MouseSwap")

グローバル$ Buttons

ながら1
   寝る(50)
終了

Func MouseSwap()
   If $ Buttons = 0 Then
      DllCall( "user32.dll"、 "int"、 "SwapMouseButton"、 "int"、1)
      $ Buttons = 1
      SplashTextOn( ""、 "E8"、280,180、-1、-1,33、 "Wingdings"、80)
      寝る(600)
      SplashOff()
   そうしないと
      DllCall( "user32.dll"、 "int"、 "SwapMouseButton"、 "int"、0)
      $ Buttons = 0
      SplashTextOn( ""、 "8F"、280,180、-1、-1,33、 "Wingdings"、80)
      寝る(600)
      SplashOff()
   EndIf
EndFunc

4

より良いAHKコード:

Run, main.cpl
Send, {Space}{Enter}

私はまた、両手でマウスを使用し、Win7も持っています。このコードはうまく機能します!


これはquicktypersに最適です。
Leonid Dworzanski

3

Windows Vista(おそらく7)以降でマウスボタンを切り替えるキーボードの方法:

  1. Windowsキー
  2. タイプ「マウス」
  3. スペースキー
  4. 入る

ええ、それは8回のキープレスですが、それほど悪くはありません...私はそれをたくさんやりました


近くにマウスの設定画面5. ALT + F4
はPrzemyslaw Remin

2

これは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」キーなどのホットキーにマップし(オートホットキーを使用)、キーを押すだけでマウスの左ボタンと右ボタンを瞬時に切り替えることができます。コントロールパネルの読み込みやレジストリの設定/再起動をいじる必要はありません。


0

ここではいくつかの良いAutohotkeyの提案がありますが、これはWindowsのボタンを直接交換し、ポップアップ通知を出します。

これは、micaが言及したmouseswap Autoitスクリプトのコピーです。

#a::
if button = 0
    {
    DllCall("SwapMouseButton", "int", 1)
    button = 1
    SplashTextOn, 120, 30, Mouse Button, Left handed
    Sleep 600
    SplashTextOff
    }
else
    {
    DllCall("SwapMouseButton", "int", 0)
    button = 0
    SplashTextOn, 120, 30, Mouse Button, Right handed
    Sleep 600
    SplashTextOff
    }
return

ポップアップなしの簡潔な代替手段:

Swapped := DllCall("SwapMouseButton", Int, 0)
if Swapped = 0
 DllCall("SwapMouseButton", Int, 1)

-1

キーボードショートカットについては知りませんが、ここで説明することを行う2つのregファイルを作成できます。クリックするだけで移動できます。

本当に必要な場合は、regファイルをトリガーするAutoHotkeyスクリプトをセットアップします


レジストリエントリを変更するだけでは効果はありません。ボタンは変更されません。それらを有効にするには、再起動するか、ログアウトしてから再度ログインする必要があります。
Synetech 14年

-1

可能な場合はランダムなexeファイルを使用しないようにします。これは、前述のキーボードソリューションに基づくAutoHotKeyソリューションです。

c:\ mouse.inkという名前のショートカットを作成して、マウスの設定を開きます。

このAHKスクリプトを使用します。

#a::
Run c:\mouse
sleep 250
send {Space}
Send {Enter}
return

exeは、コンパイル済みのAutoItスクリプトです(AutoHotkeyに似ています)。exeの代わりに、au3を実行できます。
マイカ14

-1

mivkが述べたように、これは簡単で、魅力のように機能します。これはmivkが言及したことです

以下を含む、swapmouse.csを呼び出すことができるテキストファイルを作成します。

using System.Runtime.InteropServices;
using System;

class SwapMouse
{
    [DllImport("user32.dll")]
    public static extern Int32 SwapMouseButton(Int32 bSwap);

    static void Main(string[] args)
    {
        int rightButtonIsAlreadyPrimary = SwapMouseButton(1);
        if (rightButtonIsAlreadyPrimary != 0)
        {
            SwapMouseButton(0);  // Make the left mousebutton primary
        }
    }
}

そして、次のコマンドでswapmouse.exeにコンパイルします:

"%SystemRoot%\Microsoft.NET\Framework64\v3.5\csc" swapmouse.cs

これで、C:\ Program Files \ swapmouseというフォルダーを作成し、swapmouse.exeを新しく作成したフォルダーにコピーできます。

次に、デスクトップにこのswapmouse.exeファイルのショートカットを作成します。

ショートカットファイルのプロパティの下に、ショートカットキーを追加します。この場合、「Ctrl + Alt + S」を使用して適用します。

これで、「Ctrl + Alt + S」を押すたびに、マウスボタンが入れ替わります。

マウスボタンを変更するためのマウスへの依存はありません。


1
スーパーユーザーへようこそ!これにより別の回答が複製され、新しいコンテンツは追加されません。実際に何か貢献できるものがない限り、回答を投稿しないでください。
DavidPostill

-1

ご覧になりましたか:https : //www.eithermouse.com/

これはコンパイルされた自動ホットキースクリプトで、システムトレイからボタンを交換でき、同時に2つのマウスを使用できます。左手と右手を交互に使用する2つのマウスがあります。これにより、カーソルとマウスボタンの角度が自動的に変更されます。


これを行うスクリプトを含めた場合、これはより便利です。そうでなければ、これはコメントとしてより良いです。
Synetech 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.