Seite 1 von 1

GetAsyncKeyState_()

Verfasst: 17.06.2010 17:10
von Codusa
Moin,
Ich möchte ein Programm schreiben mit dem Parameter #pb_window_invisible
und dann per "Shortcut" eine Funktion ausführen.
Das habe ich mit GetAsyncKeyState_() verwirklicht, na ja halb, denn es funktioniert nicht...
Das Event wird nicht ausgelöst wenn mein Fenster invisible ist(wenn ich das flag rausnehme funktioniert es fast: Nur wenn der Fokus auf dem Fenster ist oder wenn die Maus sich über dem Fenster bewegt)

Woran kanns liegen? Ich dachte GetAsyncKeyState_() wäre global?

Thx

Re: GetAsyncKeyState_()

Verfasst: 17.06.2010 17:21
von Mok
Probier's mal mit AddKeyboardShortcut()

Re: GetAsyncKeyState_()

Verfasst: 17.06.2010 17:28
von NicTheQuick
Ohne den Code gelesen zu haben vermute ich mal, dass du in der Event-Schleife 'WaitWindowEvent()' verwendest. Wenn dein Window aber invisible ist, wird 'WaitWindowEvent()' vergeblich auf Events warten und somit kommst du vermutlich auch nie zum Aufruf von 'GetAsyncKeystate_()'. Sinnvoll wäre es also den optionalen timeout-Parameter von 'WaitWindowEvent()' zu verwenden um z.B. alle 10 ms den Rückgabewert von 'GetAsyncKeystate_()' zu überprüfen.
Das erklärt auch, warum es ohne invisible nur funktioniert, wenn du die Maus über dem Fenster bewegst.

Ah, und nochwas:
Für 'GetAsyncKeystate_()' brauchst du kein offenes Fenster, das funktioniert auch ohne. Eine einfach 'Repeat - ForEver'-Schleife mit kleinem Delay und der Überprüfung des KeyState reicht also auch vollkommen aus.

Re: GetAsyncKeyState_()

Verfasst: 17.06.2010 20:52
von Codusa
@Mok
Wäre nicht global oder?
@NicTheQuick
Damn it! ich bin so blöd :(
Dachte wenn Waitwindowevent nicht vor GetAsyncKeyState ist reicht das....

Na ja jedenfalls klappt es jetzt, großes Danke!! :D
Das Fenster hab ich auch weggelassen :allright:

THX
-Codusa-