GetAsyncKeyState Problem
GetAsyncKeyState Problem
Hallo!
Nach MSDN müsste dieser code prüfen, ob die Taste "gedrückt" wurde(also nicht gedrückt gehalten wird):
GetAsyncKeyState_(#VK_LBUTTON)&1
Funktioniert auch wunderbar, nur mit den Tastatur VK-codes klappts irgendwie nicht:
GetAsyncKeyState_(#VK_Space)&1
Nach MSDN müsste dieser code prüfen, ob die Taste "gedrückt" wurde(also nicht gedrückt gehalten wird):
GetAsyncKeyState_(#VK_LBUTTON)&1
Funktioniert auch wunderbar, nur mit den Tastatur VK-codes klappts irgendwie nicht:
GetAsyncKeyState_(#VK_Space)&1
Kann ich nicht bestätigen, funzt bei mir ...
Mögliches problem ist, dass das GetAsyncKeyState von viele MS-Programmen genutzt wird, falls dort dann schon einmal dieses Abfrage gemacht wird, fäält das Event wieder weg, weil es ja nur "einmal" abgegeben werden soll
Code: Alles auswählen
Repeat
If GetAsyncKeyState_(#VK_SPACE)&1
Debug "SPACE"
EndIf
ForEverPB 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
"&1" ist nicht nötig. Es reicht, If GetAsyncKeyState_(#VK_SPACE) abzufragen. Falls wahr, weißt du, dass die Taste zumindest seit der letzten Abfrage einmal gedrückt wurde oder seit dem gedrückt gehalten wird.
Die MSDN schreibt außerdem:
Die MSDN schreibt außerdem:
Man darf sich also nicht darauf verlassen, dass die Bits entsprechend gesetzt wurden - du verlässt dich aber einfach darauf.MSDN hat geschrieben:If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState. However, you should not rely on this last behavior; for more information, see the Remarks.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy Enddu macht n eigene Abfrage auf Klick-Druck
Code: Alles auswählen
Repeat
Key = GetAsyncKeyState_(#VK_SPACE)
If Key And Not DruckSpace
DruckSpace = #True
ElseIf Not Key And DruckSpace
Debug "Klick"
DruckSpace = #False
EndIf
ForEver
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
so besser :
Code: Alles auswählen
Procedure MyKeyPushed(KeyID)
Static Dim KeyDown.b(255)
Protected Event
Event = GetAsyncKeyState_(KeyID)
If Event And Not KeyDown(KeyID)
KeyDown(KeyID) = #True
ElseIf Not Event And KeyDown(KeyID)
KeyDown(KeyID) = #False
ProcedureReturn #True
EndIf
EndProcedure
Repeat
If MyKeyPushed(#VK_SPACE)
Debug "Space"
EndIf
If MyKeyPushed(#VK_D)
Debug "D"
EndIf
ForEver
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
