답변:
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의 바로 가기를 두 번 클릭하여 마우스 버튼을 교체하십시오. 즉시 적용됩니다.
해당 앱은 다음과 같습니다. http://code.google.com/p/mouseswap/
당신이있는 경우 AutoIt을이 설치, 여기에 AU3 파일에 실행할 스크립트는 다음과 같습니다
#NoTrayIcon HotKeySet ( "# a", "MouseSwap") 글로벌 $ 버튼 1 동안 수면 (50) 향하게 하다 Func MouseSwap () $ Buttons = 0이면 DllCall ( "user32.dll", "int", "SwapMouseButton", "int", 1) $ 버튼 = 1 SplashTextOn ( "", "E8", 280,180, -1, -1,33, "날개", 80) 수면 (600) SplashOff () 그밖에 DllCall ( "user32.dll", "int", "SwapMouseButton", "int", 0) $ 버튼 = 0 SplashTextOn ( "", "8F", 280,180, -1, -1,33, "날개", 80) 수면 (600) SplashOff () EndIf EndFunc
더 나은 AHK 코드 :
Run, main.cpl
Send, {Space}{Enter}
나는 또한 양손으로 마우스를 사용하고 Win7을 가지고 있습니다.이 코드는 훌륭합니다!
Windows Vista (아마도 7) 이상에서 마우스 버튼을 전환하는 키보드 방식 :
네, 8 번의 키 누름이지만 나쁘지는 않습니다 ...
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 사용)와 같은 핫키에 매핑되며 키를 누르면 마우스 왼쪽 버튼과 오른쪽 버튼 간을 즉시 전환 할 수 있습니다. 제어판을로드하거나 레지스트리 / 재부팅을 설정하지 않아도됩니다.
여기에 몇 가지 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)
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"를 누를 때마다 마우스 버튼이 바뀝니다.
더 이상 마우스 버튼을 변경하기 위해 마우스에 의존하지 않습니다.
https://www.eithermouse.com/을 보셨습니까?
이것은 시스템 트레이에서 버튼을 바꾸고 동시에 두 개의 마우스를 가질 수있는 컴파일 된 자동 핫키 스크립트입니다. 왼손과 오른손을 번갈아 사용하는 두 개의 마우스가 있습니다. 커서와 마우스 버튼의 각도가 자동으로 변경됩니다.
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