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
). 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.
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
BTW, ik doe het momenteel allemaal met Delphi, maar het gaat me meer op de werkwijze en API's die ik kan gebruiken.