2009-03-17 22 views
7

.NET'te sol ve sağ fare düğmelerini nasıl değiştirebilirim (tercihen C#)? Temel olarak, kullanıcı kontrol panelinden Fare Özellikleri'nde "Birincil ve ikincil düğmeleri değiştir" onay kutusunu işaretlediğinde sonuç aynı olmalıdır. Windows XP ile uğraşıyorum, bir fark yaratırsa..NET'te sağ ve sol fare düğmesi değiştirme

+0

u ... takas ne demek istiyorsunuz u sistem düzeyi takas veya kendi uygulama için bir takas yapmak istiyorsunuz? – Aamir

cevap

12

Sen SwapMouseButton için bir Windows API çağrısı kullanabilirsiniz:

yapar
using System.Runtime.InteropServices; 

// ... 

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

// ... 

// Swap it. 
SwapMouseButton(1); 

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

teşekkürler. "System.Runtime.InteropServices;" kullanarak ihtiyacınız olanı eklemek isteyebilir –

+0

Whoops; Bundan bahsetmeyi ihmal ettim. İleride başvurmak için ekleyeceğim. –

+0

Bu çalışır ancak kullanıcı oturumu kapattıktan sonra kaydedilmez. Takas durumunu hatırlatmak için Porges'in çözümünü kayıt defterinde kullanmanız gerekir. – foka

3

şey:

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); 
İlgili konular