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
GetAsyncKeyState_()
GetAsyncKeyState_()
"I became insane, with long intervals of horrible sanity." - Edgar A. Poe
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: GetAsyncKeyState_()
Probier's mal mit AddKeyboardShortcut()
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: GetAsyncKeyState_()
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.
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_()
@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!!
Das Fenster hab ich auch weggelassen
THX
-Codusa-
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!!

Das Fenster hab ich auch weggelassen

THX
-Codusa-
"I became insane, with long intervals of horrible sanity." - Edgar A. Poe