2010-03-27 16 views
8

Sormamın nedeni, vardiya ve kontrol tuşları olarak hareket etmek için bir ayak anahtarı oluşturmayı düşündüğümdür - iki ayak, her ayak için bir tane.Vardiya ve kontrol tuşlarının durumunu programlı olarak ayarlamak mümkün mü?

Bunun için Arduino kullanmayı ve geçişin ne zaman kaymasını veya kontrol durumunu ayarlayacağını belirlemek için küçük bir C# uygulaması yazmayı planlıyorum. Arduino için başka şeyler de yapmak isterim diye bir klavye sürücüsü yazmak zorunda kalmamayı tercih ederim.

+0

+1 Pedal/anahtar tahsisleri, bir kişinin sınırlı bir el kullanması durumunda veya oyun oynamak için yardımcı olması için programlanabilirse, daha da kullanışlı bir fikir! – amelvin

+0

... ya da emacs pinky sendromu – spender

cevap

9

Evet, ancak mümkündür, ancak Win32'a karşı pInvoke etmeniz gerekecektir. keydb_event aramasına bir göz atın. (Aşağı anahtar yani.)

keybd_event(0x10, 0, 0, 0); 

shift tuşu açmak için, ve:

[DllImport("user32.dll", SetLastError = true)] 
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); 

Daha sonra çağırabilir.

keybd_event(0x10, 0, 2, 0); 

tekrar kapatmak için (yani anahtar kadar). =

  • 0x10 Sadece bu denedim
  • 0x11 = ctrl
  • 0x12 = alt

vardiya:

İlk argüman anahtarın onaltılık değerini basmaktır Vardiya anahtarını temsil etmek için bir onay kutusunu kullanarak basit bir C# uygulamasında. İşaretli olarak, kullandığım herhangi bir uygulama için vardiya anahtarını "tuttu".

+0

Tam olarak aradığım şey için teşekkür ederiz! –

0

Yalnızca önalandaki uygulamayı kontrol etmekle ilgileniyorsanız, en kolay çözüm, pedalınızın basılması ve serbest bırakılması için WM_KEYDOWN ve WM_KEYUP mesajlarını etkin uygulamaya göndermektir.

Hatalı olabilirim (ve akıllıca kafalar, eğer ben de olsa beni düzeltmek için çekinmeyin!) Ama bunun gerçek sistem düzeyinde tuşa basma olayını yarattığına inanıyorum - örn. Windows'u yapmak için anahtar/kilitli mesajlar oluşturun ve pedal basılı tutulduğunda uygulamaları değiştirseniz bile doğru şekilde çalışın - bir giriş sürücüsü yazmanız gerekir.

İlgili konular