2009-03-17 3 views
7

.NET (예 : C#)에서 왼쪽 및 오른쪽 마우스 버튼을 어떻게 바꿀 수 있습니까? 기본적으로 사용자가 제어판을 통해 마우스 속성의 "기본 및 보조 버튼 전환"확인란을 선택한 경우와 같은 결과가 나타납니다. 차이가 나는 경우 Windows XP를 다루고 있습니다..NET에서 왼쪽 마우스 및 오른쪽 마우스 버튼 바꾸기

+0

이 유 ... 교환 무엇을 의미합니까 유 시스템 수준의 스왑 또는 자신의 응용 프로그램에 대한 스왑을 하시겠습니까? 덕분에 – Aamir

답변

12

당신은 SwapMouseButton에 Windows API 호출을 사용할 수 있습니다

이 작업을 수행
using System.Runtime.InteropServices; 

// ... 

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

// ... 

// Swap it. 
SwapMouseButton(1); 

// Back to normal. 
SwapMouseButton(0); 
+0

. "using System.Runtime.InteropServices;"가 필요하다는 것을 추가 할 수 있습니다. –

+0

으악; 나는 정말로 그것을 언급하지 않았다. 나중에 참조 할 수 있도록 추가하겠습니다. –

+0

이 작동하지만 사용자가 로그 아웃 한 후에 상태가 저장되지 않습니다. 스왑 상태를 기억하려면 Porges의 솔루션을 레지스트리와 함께 사용해야합니다. – foka

3

뭔가 :

using Microsoft.Win32; 

var key = Registry.CurrentUser.CreateSubKey("Control Panel\\Mouse\\"); 
var newValue = key.GetValue("SwapMouseButtons"); 

if (newValue == null) newValue = "1"; 
else     newValue = Int32.Parse(newValue) == 1 ? "0" : "1"; 

key.SetValue("SwapMouseButtons", newValue, RegistryValueKind.String); 
관련 문제