[win32/C++] USB keyboard los gebruiken?

Pagina: 1
Acties:
  • 137 views sinds 30-01-2008
  • Reageer

  • MisterData
  • Registratie: September 2001
  • Laatst online: 27-11 20:42
Ik heb op mijn PC een toetsenbord (ingebouwd want laptop) en een los USB-toetsenbord. Nu zou ik graag met een programma acties aan bepaalde knoppen op dat USB-toetsenbord willen koppelen, maar natuurlijk niet meteen ook aan dezelfde knoppen op het gewone toetsenbord. In MSDN vind ik nergens iets over het apart aanspreken van toetsenborden en een standaard WM_KEYDOWN message geeft geen informatie over van welk toetsenbord een bepaalde toetsaanslag vandaan komt.

Hoe kan ik toch het USB-toetsenbord los aanspreken? :)

  • sariel
  • Registratie: Mei 2004
  • Laatst online: 22-05-2024
Dat is voor zover ik weet niet mogelijk. Toetsenbord = toetsenbord. Microsoft (en anderen) hebben nooit rekening gehouden met het feit dat je 2 toetsenborden tegelijkertijd wil gebruiken (kan ze geen ongelijk geven, gezien 99.99999% van de bevolking zo is).

Copy.com


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 23:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

Wellicht kun je het onderscheid maken met DirectInput, maar anders zul je toch echt je eigen toetsenbord-driver moeten schrijven.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • MisterData
  • Registratie: September 2001
  • Laatst online: 27-11 20:42
Het kan (en werkt!) onder Windows XP met 'Raw Input'. Kijk op http://msdn.microsoft.com...awinput/usingrawinput.asp :) Ik zoek nu alleen nog een manier om te zorgen dat input van het USB-toetsenbord niet alleen afgevangen wordt, maar ook niet terecht komt in de andere applicaties. Ik heb m'n programma als RIM_INPUTSINK geregistreerd, dus ook als de bijbehorende HWND niet actief is wordt input aan de window doorgegeven. Zit je in bijvoorbeeld kladblok, dan krijgt mijn programma netjes de input, maar Kladblok ook, en dat wil ik graag voorkomen.... suggesties?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 30-11 00:17
MisterData schreef op zaterdag 02 september 2006 @ 12:46:
Het kan (en werkt!) onder Windows XP met 'Raw Input'. Kijk op http://msdn.microsoft.com...awinput/usingrawinput.asp :) Ik zoek nu alleen nog een manier om te zorgen dat input van het USB-toetsenbord niet alleen afgevangen wordt, maar ook niet terecht komt in de andere applicaties. Ik heb m'n programma als RIM_INPUTSINK geregistreerd, dus ook als de bijbehorende HWND niet actief is wordt input aan de window doorgegeven. Zit je in bijvoorbeeld kladblok, dan krijgt mijn programma netjes de input, maar Kladblok ook, en dat wil ik graag voorkomen.... suggesties?
Ik weet niet of je dat ook met die raw input kunt doen, maar je kunt wel in een global keyboard hook keyboard events afvangen en tegenhouden. Je zou dat dan moeten combineren met deze techniek.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • MisterData
  • Registratie: September 2001
  • Laatst online: 27-11 20:42
Het probleem is dat Raw Input en hooks volledig los van elkaar staan; ik weet niet eens of WM_INPUT tegelijk, voor of na een normale WM_KEYDOWN verstuurd wordt. Kan ik niet gewoon het hele toetsenbord uitschakelen voor de 'normale' input en alleen voor Raw Input gebruiken? :)

  • fluppie007
  • Registratie: April 2005
  • Laatst online: 28-11 11:17
Misterdata, ik wil precies doen wat jij wil, enkel met een sweex multimedia remote.

http://www.codeproject.com/cs/system/rawinput.asp
Hier had ik al wat code vandaan, wil nu ook enkel input van die HID device registreren en niet van gewone toetsenbord en dan ook die input afvangen zoals jij zegt. Enkel wat ik nog niet voor elkaar
heb is keyboard combinaties zoals: Ctrl + P / Ctrl + Shift + F want die remote zend keystrokes uit
die blijkbaar vast geprogrammeerd zijn. Vandaar dat ik wil spelen met die Raw Input.
Hopelijk weet jij onderwijl al hoe het moet :)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 23:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

.edit: lezen

[ Voor 96% gewijzigd door .oisyn op 15-06-2007 13:54 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • MisterData
  • Registratie: September 2001
  • Laatst online: 27-11 20:42
Ik heb er sindsdien niet meer naar gekeken eigenlijk (m'n USB-toetsenbord is ook kapot..). Mijn probleem was in ieder geval om te zorgen dat alléén Raw Input de toetsaanslagen verwerkte en niet ook nog eens heel Windows (via WM_KEYDOWN etc)....
Pagina: 1