1: | procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; |
| Zitat: |
| GetAsyncKeyState
The GetAsyncKeyState function determines whether a key is up or down at the time the function is called, and whether the key was pressed after a previous call to GetAsyncKeyState. SHORT GetAsyncKeyState( int vKey // virtual-key code ); Parameters vKey [in] Specifies one of 256 possible virtual-key codes. For more information, see Virtual-Key Codes. Windows NT/2000/XP: You can use left- and right-distinguishing constants to specify certain keys. See the Remarks section for further information. Return Values 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. Windows NT/2000/XP: The return value is zero for the following cases: The current desktop is not the active desktop The foreground thread belongs to another process and the desktop does not allow the hook or the journal record. Windows 95/98/Me: The return value is the global asynchronous key state for each virtual key. The system does not check which thread has the keyboard focus. Windows 95: Windows 95 does not support the left- and right-distinguishing constants. If you call GetAsyncKeyState with these constants, the return value is zero. Remarks The GetAsyncKeyState function works with mouse buttons. However, it checks on the state of the physical mouse buttons, not on the logical mouse buttons that the physical buttons are mapped to. For example, the call GetAsyncKeyState(VK_LBUTTON) always returns the state of the left physical mouse button, regardless of whether it is mapped to the left or right logical mouse button. You can determine the system's current mapping of physical mouse buttons to logical mouse buttons by calling GetSystemMetrics(SM_SWAPBUTTON) which returns TRUE if the mouse buttons have been swapped. Although the least significant bit of the return value indicates whether the key has been pressed since the last query, due to the pre-emptive multitasking nature of Windows, another application can call GetAsyncKeyState and receive the "recently pressed" bit instead of your application. The behavior of the least significant bit of the return value is retained strictly for compatibility with 16-bit Windows applications (which are non-preemptive) and should not be relied upon. You can use the virtual-key code constants VK_SHIFT, VK_CONTROL, and VK_MENU as values for the vKey parameter. This gives the state of the SHIFT, CTRL, or ALT keys without distinguishing between left and right. Windows NT/2000/XP: You can use the following virtual-key code constants as values for vKey to distinguish between the left and right instances of those keys. Code Meaning VK_LSHIFT VK_RSHIFT VK_LCONTROL VK_RCONTROL VK_LMENU VK_RMENU These left- and right-distinguishing constants are only available when you call the GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, and MapVirtualKey functions. Requirements Windows NT/2000/XP: Included in Windows NT 3.1 and later. Windows 95/98/Me: Included in Windows 95 and later. Header: Declared in Winuser.h; include Windows.h. Library: Use User32.lib. See Also Keyboard Input Overview, Keyboard Input Functions, GetKeyboardState, GetKeyState, GetSystemMetrics, MapVirtualKey, SetKeyboardState |
| Zitat: |
| Virtual-Key Codes
The following table shows the symbolic constant names, hexadecimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order. Symbolic constant name Value (hexadecimal) Mouse or keyboard equivalent VK_LBUTTON 01 Left mouse button VK_RBUTTON 02 Right mouse button VK_CANCEL 03 Control-break processing VK_MBUTTON 04 Middle mouse button (three-button mouse) VK_XBUTTON1 05 Windows 2000/XP: X1 mouse button VK_XBUTTON2 06 Windows 2000/XP: X2 mouse button — 07 Undefined VK_BACK 08 BACKSPACE key VK_TAB 09 TAB key — 0A–0B Reserved VK_CLEAR 0C CLEAR key VK_RETURN 0D ENTER key — 0E–0F Undefined VK_SHIFT 10 SHIFT key VK_CONTROL 11 CTRL key VK_MENU 12 ALT key VK_PAUSE 13 PAUSE key VK_CAPITAL 14 CAPS LOCK key VK_KANA 15 IME Kana mode VK_HANGUEL 15 IME Hanguel mode (maintained for compatibility; use VK_HANGUL) VK_HANGUL 15 IME Hangul mode — 16 Undefined VK_JUNJA 17 IME Junja mode VK_FINAL 18 IME final mode VK_HANJA 19 IME Hanja mode VK_KANJI 19 IME Kanji mode — 1A Undefined VK_ESCAPE 1B ESC key VK_CONVERT 1C IME convert VK_NONCONVERT 1D IME nonconvert VK_ACCEPT 1E IME accept VK_MODECHANGE 1F IME mode change request VK_SPACE 20 SPACEBAR VK_PRIOR 21 PAGE UP key VK_NEXT 22 PAGE DOWN key VK_END 23 END key VK_HOME 24 HOME key VK_LEFT 25 LEFT ARROW key VK_UP 26 UP ARROW key VK_RIGHT 27 RIGHT ARROW key VK_DOWN 28 DOWN ARROW key VK_SELECT 29 SELECT key VK_PRINT 2A PRINT key VK_EXECUTE 2B EXECUTE key VK_SNAPSHOT 2C PRINT SCREEN key VK_INSERT 2D INS key VK_DELETE 2E DEL key VK_HELP 2F HELP key 30 0 key 31 1 key 32 2 key 33 3 key 34 4 key 35 5 key 36 6 key 37 7 key 38 8 key 39 9 key — 3A–40 Undefined 41 A key 42 B key 43 C key 44 D key 45 E key 46 F key 47 G key 48 H key 49 I key 4A J key 4B K key 4C L key 4D M key 4E N key 4F O key 50 P key 51 Q key 52 R key 53 S key 54 T key 55 U key 56 V key 57 W key 58 X key 59 Y key 5A Z key VK_LWIN 5B Left Windows key (Microsoft® Natural® keyboard) VK_RWIN 5C Right Windows key (Natural keyboard) VK_APPS 5D Applications key (Natural keyboard) — 5E Reserved VK_SLEEP 5F Computer Sleep key VK_NUMPAD0 60 Numeric keypad 0 key VK_NUMPAD1 61 Numeric keypad 1 key VK_NUMPAD2 62 Numeric keypad 2 key VK_NUMPAD3 63 Numeric keypad 3 key VK_NUMPAD4 64 Numeric keypad 4 key VK_NUMPAD5 65 Numeric keypad 5 key VK_NUMPAD6 66 Numeric keypad 6 key VK_NUMPAD7 67 Numeric keypad 7 key VK_NUMPAD8 68 Numeric keypad 8 key VK_NUMPAD9 69 Numeric keypad 9 key VK_MULTIPLY 6A Multiply key VK_ADD 6B Add key VK_SEPARATOR 6C Separator key VK_SUBTRACT 6D Subtract key VK_DECIMAL 6E Decimal key VK_DIVIDE 6F Divide key VK_F1 70 F1 key VK_F2 71 F2 key VK_F3 72 F3 key VK_F4 73 F4 key VK_F5 74 F5 key VK_F6 75 F6 key VK_F7 76 F7 key VK_F8 77 F8 key VK_F9 78 F9 key VK_F10 79 F10 key VK_F11 7A F11 key VK_F12 7B F12 key VK_F13 7C F13 key VK_F14 7D F14 key VK_F15 7E F15 key VK_F16 7F F16 key VK_F17 80H F17 key VK_F18 81H F18 key VK_F19 82H F19 key VK_F20 83H F20 key VK_F21 84H F21 key VK_F22 85H F22 key VK_F23 86H F23 key VK_F24 87H F24 key — 88–8F Unassigned VK_NUMLOCK 90 NUM LOCK key VK_SCROLL 91 SCROLL LOCK key 92–96 OEM specific — 97–9F Unassigned VK_LSHIFT A0 Left SHIFT key VK_RSHIFT A1 Right SHIFT key VK_LCONTROL A2 Left CONTROL key VK_RCONTROL A3 Right CONTROL key VK_LMENU A4 Left MENU key VK_RMENU A5 Right MENU key VK_BROWSER_BACK A6 Windows 2000/XP: Browser Back key VK_BROWSER_FORWARD A7 Windows 2000/XP: Browser Forward key VK_BROWSER_REFRESH A8 Windows 2000/XP: Browser Refresh key VK_BROWSER_STOP A9 Windows 2000/XP: Browser Stop key VK_BROWSER_SEARCH AA Windows 2000/XP: Browser Search key VK_BROWSER_FAVORITES AB Windows 2000/XP: Browser Favorites key VK_BROWSER_HOME AC Windows 2000/XP: Browser Start and Home key VK_VOLUME_MUTE AD Windows 2000/XP: Volume Mute key VK_VOLUME_DOWN AE Windows 2000/XP: Volume Down key VK_VOLUME_UP AF Windows 2000/XP: Volume Up key VK_MEDIA_NEXT_TRACK B0 Windows 2000/XP: Next Track key VK_MEDIA_PREV_TRACK B1 Windows 2000/XP: Previous Track key VK_MEDIA_STOP B2 Windows 2000/XP: Stop Media key VK_MEDIA_PLAY_PAUSE B3 Windows 2000/XP: Play/Pause Media key VK_LAUNCH_MAIL B4 Windows 2000/XP: Start Mail key VK_LAUNCH_MEDIA_SELECT B5 Windows 2000/XP: Select Media key VK_LAUNCH_APP1 B6 Windows 2000/XP: Start Application 1 key VK_LAUNCH_APP2 B7 Windows 2000/XP: Start Application 2 key — B8-B9 Reserved VK_OEM_1 BA Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the ';:' key VK_OEM_PLUS BB Windows 2000/XP: For any country/region, the '+' key VK_OEM_COMMA BC Windows 2000/XP: For any country/region, the ',' key VK_OEM_MINUS BD Windows 2000/XP: For any country/region, the '-' key VK_OEM_PERIOD BE Windows 2000/XP: For any country/region, the '.' key VK_OEM_2 BF Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '/?' key VK_OEM_3 C0 Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '`~' key — C1–D7 Reserved — D8–DA Unassigned VK_OEM_4 DB Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '[{' key VK_OEM_5 DC Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '\|' key VK_OEM_6 DD Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the ']}' key VK_OEM_7 DE Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the 'single-quote/double-quote' key VK_OEM_8 DF Used for miscellaneous characters; it can vary by keyboard. — E0 Reserved E1 OEM specific VK_OEM_102 E2 Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard E3–E4 OEM specific VK_PROCESSKEY E5 Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key E6 OEM specific VK_PACKET E7 Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP — E8 Unassigned E9–F5 OEM specific VK_ATTN F6 Attn key VK_CRSEL F7 CrSel key VK_EXSEL F8 ExSel key VK_EREOF F9 Erase EOF key VK_PLAY FA Play key VK_ZOOM FB Zoom key VK_NONAME FC Reserved for future use VK_PA1 FD PA1 key VK_OEM_CLEAR FE Clear key |
1: | while true do ReadPort(xxx); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!