Forum: PC-Programmierung Auf beliebige Tasten ohne Fokus reagieren(c++)


von Tom (Gast)


Lesenswert?

Hallo,

ich habe eine nur im Tray sichtbare WinAPI-Anwendung(transparentes 
Fenster), die timergesteuert mit Hilfe von GetAsyncKeyState() unabhängig 
vom Fokus auf bestimmte gedrückte Tasten reagiert:
1
if ((GetAsyncKeyState(0x31) & 0x8000)!=0) {
2
}

Nun würde ich gerne auf etwas exotischere Tasten reagieren, wie z.B. die 
Raute-Taste oder das Kleiner-Zeichen. Leider funktioniert das nicht bzw. 
es scheint nicht für alle Tasten virtuelle Keys zu geben.

Gibt es einen einfachen Weg, um in meiner Anwendung unabhängig vom Fokus 
auf von mir frei wählbare gedrückte Tasten reagieren zu können? Oder 
geht das nur über einen Hook in Verbindung mit einer DLL?

Viele Grüße,
Tom

von Klaus W. (mfgkw)


Lesenswert?

Willst du Passwörter abgreifen?
Die bekommst du von der NSA.

von nfet (Gast)


Lesenswert?

Schonmal nach deiner Funktion gegoogelt? Und dabei geschaut, was sie für 
einen Parameter erwartet?

http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx

Wenn du dir dieses Seite ansiehst sollte da doch alles aufgeführt sein, 
was es an Tasten gibt?

von Tom (Gast)


Lesenswert?

Hallo,

ich will keine Passwörter abgreifen. Bei meinen Recherchen habe ich sehr 
häufig Hinweise auf Keylogger, Hooks, etc. gefunden. Das ist aber nicht 
mein Ziel. Mein Programm läuft ja auch sichtbar im Tray. Es soll auch 
nur auf ein paar wenige Tasten reagieren, nicht auf alle. Die 0x31 war 
nur ein Test-Beispiel mit dem es funktioniert.

@nfet
Das Dokument hatte ich schon gefunden. Kannst Du mir sagen, wo in Dem 
Dokument die VK-Codes für < > # ' auftauchen?

Grüße,
Tom

von nfet (Gast)


Lesenswert?

Müsste einer der VK_OEM_X Keys sein.
VK_OEM_5 sollte # bzw. ' sein.
Ansonsten einfach ausprobieren. Ist eben für amerikanische Tastaturen 
gedacht und diese Tasten sind auf der Tastatur nicht einheitlich.

von lagon (Gast)


Lesenswert?

Wenn man aus dem Hintergrund beobachten will, macht man es vielleicht 
besser passiv.

SetWindowsHookEx ist eine der Funktionen aus diesem Segment.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.