[Win32] Afstandsbediening afvangen

Pagina: 1
Acties:

  • BoomSmurf
  • Registratie: Maart 2003
  • Laatst online: 13-06-2025
Ik heb remote, die bij mijn TV-kaart zat, en ben al een tijdje bezig mn eigen home theater software te bouwen (andermans zooi voldoet nooit heh ;)). Nu ik toch een remote heb wil ik deze zelf ook misbruiken (en ook nog effe een Grider plugin maken - kon geen goeie vinden voor deze remote).

Het probleem is nu dat ik de codes wel kan afvangen en detecteren (de USB receiver doet zich voor als keyboard + muis). Voor sommige knoppen is dat vrij makkelijk, omdat bijvoorbeeld het 'music' knopje achtereenvolgens Ctrl + Alt + F2, Ctrl + Alt + Shift + 17 (scancode), 48 zendt. Zodra Ctrl + Alt + F2 ingedrukt wordt kan ik dus dmv een global keyboard hook de volgende paar toetsen catchen en cancellen (ik genereer dan zelf een message maar windows denkt niet dat er daadwerkelijk op die toetsen gedrukt wordt).

Voor sommige toetsen werkt dit, voor andere niet. Het knopje '1' zendt namelijk gewoon Chr(1). Aangezien ik de gezonden codes allemaal wil 'cancellen' voor windows, komen hier problemen van. Als je nl. op het normale toetsenbord op '1' drukt krijg je dezelfde code. Het probleem is dat je bij een global keyboard hook geen onderscheid hebt van welk keyboard de input kwam.

Ik heb verder ook nog RawInput (RegisterRawInputDevices) geprobeerd, hier had ik echter ook maar matig resultaat mee. Hier weet ik precies welke code van welk device gestuurd wordt, maar hier kan ik weer niet cancellen. Je kunt ook wel mooi instellen dat er geen legacy codes gegenereerd worden, maar dat valt alleen in te stellen per groep, ofwel, ALLE keyboards, ipv alleen de IR receiver.

Ik kan de IR receiver ook niet direct openen omdat W2K/WXP deze zelf al als exclusive geopend heeft.

Het lijkt me ondertussen dat ik dit alleen fatsoenlijk op kan lossen dmv een keyboard filter driver (daar heb ik echter weinig zin in :D). Heeft iemand nog andere ideeen hoe ik dit op kan lossen?

BTW, ik doe het momenteel allemaal met Delphi, maar het gaat me meer op de werkwijze en API's die ik kan gebruiken.

  • BoomSmurf
  • Registratie: Maart 2003
  • Laatst online: 13-06-2025
Hmm nu ik het allemaal getypt heb krijg ik opeens zelf een idee, gewoon de codes afvangen met RawInput, geen legacy codes laten genereren maar alle codes die niet van m'n IR afkomen opnieuw invoeren dmv SendInput. Ben benieuwd of dat gaat werken, ga het vanavond proberen (moet nu naar school). Als iemand ondertussen nog andere ideeen heeft, zijn die welkom!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:56

.oisyn

Moderator Devschuur®

Demotivational Speaker

"Remote" is hier een afstandsbediening? (Noem het dan ook zo, je verhaal begint een beetje onduidelijk als men niet weet waar je het over hebt ;))

Kun je trouwens niet iets met DirectInput?

[ Voor 76% gewijzigd door .oisyn op 26-04-2004 13:30 ]

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.


  • BoomSmurf
  • Registratie: Maart 2003
  • Laatst online: 13-06-2025
Wel, ik heb het eindelijk opgelost door Raw input en een global keyboard hook te combineren. Fijn voor me eigen thuistheaterzachtwaar. Ga er waarschijnlijk ook effe een girder plugin van bakken, dus als er iemand problemen had met z'n Asus TV FM remote kan 'ie fijn die gebruiken :) (andere plugins voor deze remote vond ik niet werken naar wens, al zijn ze er wel)