F10 abfragen
-
- Beiträge: 275
- Registriert: 27.08.2009 14:14
- Computerausstattung: Intel Quad Core 2.5 GHz; 8GB DDR2 RAM; NVIDIA GeForce GT 130 mit 1500 MB; 2TB HDD;
- Kontaktdaten:
F10 abfragen
Hallo,
ich möchte gerne abfragen ob F10 gedrückt wurde. Hab ein Fenster welches "Invisible" gesetzt ist. Nun möchte ich wenn F10 gedückt wird eine Aktion ausführen.
If GetAsyncKeyState_(#VK_F10) liefert leider beim drücken und beim loslassen ein Event. Das möchte ich aber nicht.
Euer netzcoder
ich möchte gerne abfragen ob F10 gedrückt wurde. Hab ein Fenster welches "Invisible" gesetzt ist. Nun möchte ich wenn F10 gedückt wird eine Aktion ausführen.
If GetAsyncKeyState_(#VK_F10) liefert leider beim drücken und beim loslassen ein Event. Das möchte ich aber nicht.
Euer netzcoder
PB 4.40 Final Full Version
Re: F10 abfragen
Was für einen Wert liefert es denn? Denk mal ganz scharf nach.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Re: F10 abfragen
Jo es gibt mehrere Werte, das sieht etwa so aus:
-32767 : steht für den ersten Anschlag oder später für "dauer-Feuer"
-32768 : steht für taste wird gedrückt, soll aber noch kein "dauer-Feuer" sein.
Code: Alles auswählen
Repeat
Delay(10)
Event = GetAsyncKeyState_(#VK_F10)
If Event
Debug Event
EndIf
ForEver
1 : steht für losgelassen, wird aber nicht immer registriert!-32767
-32768
-32768
-32767
-32767
1
-32767 : steht für den ersten Anschlag oder später für "dauer-Feuer"
-32768 : steht für taste wird gedrückt, soll aber noch kein "dauer-Feuer" sein.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
-
- Beiträge: 275
- Registriert: 27.08.2009 14:14
- Computerausstattung: Intel Quad Core 2.5 GHz; 8GB DDR2 RAM; NVIDIA GeForce GT 130 mit 1500 MB; 2TB HDD;
- Kontaktdaten:
Re: F10 abfragen
Das hört sich ja alles irgendwie sehr wage an. Also gibt es nichts wirklich gutes?
PB 4.40 Final Full Version
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: F10 abfragen
das ist nicht vage, das ist sehr eindeutig.
lies dir bitte Stargates Posting noch mal durch.
eine Korrektur:
der Rückgabewert von GetAsyncKeystate ist kein Event.
nur kosmetisch, aber wichtig damit keine Verwechslungen aufkommen.
-----------------------------------
wie gesagt es ist kein Event und es liefert auch kein Event.
bei jeder Abfrage wird es einen Wert liefern, gemäß der Meßreihe wie Stargate sie gezeigt hat.
wenn du jetzt natürlich durch den Aufbau deiner Eventschleife bedingt diesen Wert bei WM_KEYDOWN und WM_KEYUP ausführst, erhältst du die Zustandswerte zu diesen beiden Zeitpunkten.
lies dir bitte Stargates Posting noch mal durch.
eine Korrektur:
der Rückgabewert von GetAsyncKeystate ist kein Event.
Code: Alles auswählen
Repeat
Delay(10)
State_F10 = GetAsyncKeyState_(#VK_F10)
If State_F10
Debug State_F10
EndIf
ForEver
-----------------------------------
ist grundsätzlich Falsch!netzcoder hat geschrieben:If GetAsyncKeyState_(#VK_F10) liefert leider beim drücken und beim loslassen ein Event.
wie gesagt es ist kein Event und es liefert auch kein Event.
bei jeder Abfrage wird es einen Wert liefern, gemäß der Meßreihe wie Stargate sie gezeigt hat.
wenn du jetzt natürlich durch den Aufbau deiner Eventschleife bedingt diesen Wert bei WM_KEYDOWN und WM_KEYUP ausführst, erhältst du die Zustandswerte zu diesen beiden Zeitpunkten.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Pelagio
- Beiträge: 424
- Registriert: 11.11.2004 17:52
- Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem - Wohnort: Bremen
Re: F10 abfragen
Hallo Leute,
warum so umständlich, da man ja weiß das F10 abgefragt wird kann man da nicht 'AddKeyboardShortcut ' benutzen?
warum so umständlich, da man ja weiß das F10 abgefragt wird kann man da nicht 'AddKeyboardShortcut ' benutzen?
Code: Alles auswählen
If OpenWindow(0, 0, 0, 400, 100, "Example", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible)
AddKeyboardShortcut(0, #PB_Shortcut_F10, 10)
SetActiveWindow(0)
Repeat
Event = WaitWindowEvent()
If Event=#PB_Event_Menu And EventMenu()=10
HideWindow(0, #False)
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS].
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS].

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: F10 abfragen
Weil Dein Code, sobald ein anderes Fenster aktiviert wurde, nicht mehr funktioniert.Pelagio hat geschrieben:Hallo Leute,
warum so umständlich, da man ja weiß das F10 abgefragt wird kann man da nicht 'AddKeyboardShortcut ' benutzen?
Mit folgendem Code könnte man das lösen:
Code: Alles auswählen
Macro LoWord(long)
long & $FFFF
EndMacro
Macro HiWord(long)
(long >> 16) & $FFFF
EndMacro
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "", #PB_Window_SystemMenu | #PB_Window_Invisible)
RegisterHotKey_(WindowID(0), 1, 0, #VK_F10)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow : Break
Case #WM_HOTKEY
If HiWord(EventlParam()) = #VK_F10
Debug "Hallo, F10 gedrückt!"
EndIf
EndSelect
ForEver
UnregisterHotKey_(WindowID(0), 1)
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Gruß
Thomas
-
- Beiträge: 275
- Registriert: 27.08.2009 14:14
- Computerausstattung: Intel Quad Core 2.5 GHz; 8GB DDR2 RAM; NVIDIA GeForce GT 130 mit 1500 MB; 2TB HDD;
- Kontaktdaten:
Re: F10 abfragen
An ts-soft: Dein Code ist wirklich Gold wert. Genau so etwas habe ich gesucht. Vielen vielen Dank.
netzcoder
netzcoder
PB 4.40 Final Full Version
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: F10 abfragen
Kein Problem, aber mit F10 sollteste es nicht verwenden, das könnte schief gehen. Lieber etwas ungewöhnlicher,netzcoder hat geschrieben:An ts-soft: Dein Code ist wirklich Gold wert. Genau so etwas habe ich gesucht. Vielen vielen Dank.
netzcoder
z.B. Alt + F10
Code: Alles auswählen
Macro LoWord(long)
long & $FFFF
EndMacro
Macro HiWord(long)
(long >> 16) & $FFFF
EndMacro
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "", #PB_Window_SystemMenu | #PB_Window_Invisible)
RegisterHotKey_(WindowID(0), 1, #MOD_ALT, #VK_F10)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow : Break
Case #WM_HOTKEY
If HiWord(EventlParam()) = #VK_F10 And LoWord(EventlParam()) = #MOD_ALT
Debug "Hallo, F10 gedrückt!"
EndIf
EndSelect
ForEver
UnregisterHotKey_(WindowID(0), 1)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
