GetAsyncKeyState Rückgabewert
Übersicht

![]() |
Der EisvogelBetreff: GetAsyncKeyState Rückgabewert |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
Ich habe ein Problem mit der Funktion "GetAsyncKeyState" aus der WinAPI. Die Funktion gibt sehr unterschiedliche Werte aus. Folgende habe ich schon gefunden: http://social.msdn.microsoft.c...a2faaa29f3 Da sind die Werte -32768 und -32767 erläutert. Jetzt kommt bei mir aber auch oft 1, 32767 oder 32768 als Rückgabewert. Was genau bedeuten jetzt diese. Ich kann Regelmäßigkeit beim Auftreten dieser Rückgabewerte feststellen. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Short, Rückgabewert von der Funktion: 2 Bytes, signed -> von -32768 bis 32767
Integer, von BlitzBasic benutzt: 4 Bytes, signed -> von -2^31 bis 2^31-1 2. Beim Casten wird nicht auf den Wert bzw. das Vorzeichen geachtet, sondern nur 0-Bits vorne an die Zahl drangehängt: Short: $FFFF = %1000000000000000 = -32768 Integer: $0000FFFF = %00000000000000001000000000000000 = 32768 Daher sind deine Werte doch richtig. Sie wurden nur falsch umgewandelt. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://msdn.microsoft.com/en-u...85%29.aspx
Hatte mir mal dafür extra eine Funktion geschrieben: BlitzBasic: [AUSKLAPPEN] Const VKKEYDOWN = 1 Sollte afaik gehen, wenn ich mich da nicht mit dem shr verzählt hatte Edit: Zitat: Return Value
SHORT If the function succeeds, the return value specifies whether the key was pressed since the last call to GetAsyncKeyState, and whether the key is currently up or down. 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. bedeutet: 10000000 00000000 = Gerade gedrückt 00000000 00000001 = nach dem letzten Aufruf gedrückt |
||
Warbseite |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber bei mir kommt sehr oft auch das hier: 10000000 00000001 | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann ist beides zutreffend. | ||
Warbseite |
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab da ne gute Funktion, die mit den entsprechenden Konstanten, die du bestimmt schon als include parat hast ![]() BlitzBasic: [AUSKLAPPEN]
Diese Funktion verhält sich wie das standard Keydown, Rückgabe ist 1 oder 0. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
In addition zu hamuzu-kuns Beitrag hier nochmal das was KeyHit und KeyDown ersetzen kann
BlitzBasic: [AUSKLAPPEN] Const MAPVK_VK_TO_VSC = 0 Sollte laut allen tests problemlos laufen. |
||
Warbseite |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank, das ist ne Menge Code. Ich hab es jetzt geschafft, dass alles funktioniert. Danke | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du noch weitere Hilfe bei Tastatur sachen brauchst:
http://msdn.microsoft.com/en-u...85%29.aspx Ist fast alles da. Das mit dem MapVirtualKey hab ich da auch rausgefunden |
||
Warbseite |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group