Hi,
ich hab mal in der DirectX 9 Doc gesucht, und auch gefunden, und mal in meinem etwas älteren Buch von Stefan Zerbst gekuckt:
Es gibt eine Methode der DirectInput Klasse die heist "SetCooperativeLevel". als paramter kann man der mitgeben ob der Device nur von diesen oder auch von anderen Anwendungen kontrolliert wird. du müsstest dann DISCL_BACKGROUND | DISCL_EXLUSIVE als parameter übergeben. Die bedeuten:
BACKGROUND - Das Gerät kann auch aktiviert werden wenn deine Anwendung im Hintergrund läuft (also praktisch immer)
EXLUSIVE - Keine andere Anwendung darf das Gerät benutzen (da müsste windows auch dazu zäjlen, bin mir zu 90% sicher)
Jetzt setzt du mit dieser Funktion mit den Paramtern das Cooperative level und fragst in jedem durchgang der Hauptschleife ob deine Anwendung noch das Handle auf den Device (Tastatur) hat. Wenn nicht dann hohlst du dir das Handle wieder, und das kannst du ja immer. Es ist ja egal ob deine Anwendung im Vordergrund oder im Hintergrund läuft.
Haken: die Funktion ist noch von DirectX 8, ich weiß nicht wie sich das auswirkt, aber müsste es eigentlich nicht. DirectX ist ja abwärstkompatibel.
Gib in der DirectX Doc mal "SetCooperativeLevel" ein, da findets gleich was. in der doc steht zwar sowas wie das dir das handle der Tastatur wieder weggenommen werden kann obwohl du EXCLUSIVE angibst. aber da würd ichs mal drauf ankommen lassen.
Ich hab die Doc nur auf englisch und dem bin ich nicht ganz Herr :roll:
Versuchs mal, mich würds interesieren obs geklappt hat.