Aber auch nur wenn die Anwendung zufällig grad das Vordergrundfenster ist...
Mit Zufall hat das nichts zu tun. Tastatureingaben gehen nunmal in der Regel an das Vordergrundfenster ("Tastaturfocus-Fenster"). Mit Ausnahme von Hotkeys, etc.
Das wird schwierig, denn das soll ja in einem Dienst laufen ...
Dann würde ich mal ganz dezent vorschlagen die Idee mit dem Tastatur Hook zu verwerfen und stattdessen RegisterHotkey() zu nehmen. Alternativ auch einen GetMessage Hook in einer
DLL.
Wenn ich so etwas implementieren müsste, dann würde pro Session eine Anwendung (definitiv kein Dienst) laufen, die einen Keyboard-Hook hat. Diese Anwendung kann dann auch schauen, welche Anwendung zum Zeitpunkt des Hook-CallBack-Aufrufs gerade im Vordergrund ist.
Da ja schon eh eine kleine Anwendung laufen soll (die mit dem Trayicon), wäre genau diese der richtige Ort.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)