Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Du könntest mit GetAsyncKeyState den Zustand der Strg-Taste prüfen, jedesmal, wenn im Hook ein Q ankommt. Alternativ kannst du den Zustand der Strg-Taste im Hook "verfolgen".

Zusätzlich solltest du den Zustand der Umschalt- und Alt-Tasten berücksichtigen, falls du nicht auch bei Umschalt-Strg-Q usw. reagieren willst.

Geschrieben

Allerdings hat das nicht hingehauen weil die Keyboardproc so immer 2 mal aufgerufen wurde:

Das Erste mal wenn ich Strg gedrückt habe und das Zweite mal bei Q.

Das ist ja auch zu erwarten. Ich verstehe nicht, wo da das Problem liegt.

Geschrieben

1. Der Virtual Key Code für die Q-Taste entspricht dem ASCII-Code des großen Q.

2. Der Rückgabewert von GetAsyncKeyState ist nicht einfach nur 0 oder != 0, sondern trägt zwei Informationen im MSB und LSB. Für den aktuellen Zustand ist das MSB entscheidend, also:


if (((DWORD)lParam & 0x40000000) &&(HC_ACTION==nCode))
{
if ((GetAsyncKeyState(VK_CONTROL) [b]& 0x8000[/b]) && wParam == '[b]Q[/B]')
{
//...
}
} [/CODE]

Geschrieben

Das ist doch das gleiche, was du mit dem LPARAM machst:

Durch die Und-Verknüpfung werden alle Bits, die in der so genannten Maske (hier: 0x8000) nicht gesetzt sind, ausgeblendet. Nur die Bits, die in der Maske und im Vergleichswert gesetzt sind, kommen durch.

GetAsyncKeyState gibt einen SHORT zurück, das ist ein 16-Bit-Wert. 0x8000 ist dual 1000 0000 0000 0000, also werden alle Bits bis auf das höchstwertige ausgeblendet. Im höchstwertigen Bit speichert GetAsyncKeyState den aktuellen Zustand der Taste.

Alles klar? ;)

Geschrieben
Das ist doch das gleiche, was du mit dem LPARAM machst:

Das ist nur kopiert ;) :floet:

Durch die Und-Verknüpfung werden alle Bits, die in der so genannten Maske (hier: 0x8000) nicht gesetzt sind, ausgeblendet. Nur die Bits, die in der Maske und im Vergleichswert gesetzt sind, kommen durch.

GetAsyncKeyState gibt einen SHORT zurück, das ist ein 16-Bit-Wert. 0x8000 ist dual 1000 0000 0000 0000, also werden alle Bits bis auf das höchstwertige ausgeblendet. Im höchstwertigen Bit speichert GetAsyncKeyState den aktuellen Zustand der Taste.

Alles klar? ;)

So langsam ergibt alles Sinn :D

Danke:)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...