본문 바로가기
Delphi Tip/Windows

가상키 코드(Virtual Keys)

by MonoSoft 2023. 7. 11.
728x90
반응형

가상키 코드(Virtual Keys)

728x90

 

 

 

OnKeyDown등에서 이용되는

 

 

Key값은

VK_*

형태를 지니는 상수로 정의되어 있다.

 

 

이 상수들 중 특정 키 값들을 몰라 해메는 경우가 있어 정리해 본다.

 

자판의 'A'에서 'Z'까지의 키보드는 VK_A부터 VK_Z까지로 구성되고,

자판의 '0'에서 '9'까 지의 값은 VK_0에서 VK_9와 같다.

 

이 값들은 문자의 ASCII값과 동일하다.

그 외 나머지 값은 아래와 같다.

 

이중 VK_Copy등 이용되지 않는

키 값(즉, 키보드로 누 를 수 없는 값)도 있다.

 

상수의 이름이 그대로 자판의 이름을 나타내므로

별도의 설명은 붙이지 않았다.

 

 

VK_LButton = $01;       VK_RButton = $02;       VK_Cancel = $03;        VK_MButton = $04;

VK_Back = $08;           VK_Tab = $09;               VK_Clear = $0C;          VK_Return = $0D;

VK_Shift = $10;            VK_Control = $11;         VK_Menu = $12;          VK_Pause = $13;

VK_Capital = $14;        VK_Escape = $1B;        VK_Space = $20;         VK_Prior = $21;

VK_Next = $22;            VK_End = $23;              VK_Home = $24;         VK_Left = $25;

VK_Up = $26;               VK_Right = $27;            VK_Down = $28;         VK_Select = $29;

VK_Print = $2A;            VK_Execute = $2B;       VK_SnapShot = $2C;   VK_Copy = $2C;

VK_Insert = $2D;          VK_Delete = $2E;          VK_Help = $2F;            VK_NumPad0 = $60;

VK_NumPad1 = $61;    VK_NumPad2 = $62;    VK_NumPad3 = $63;    VK_NumPad4 = $64;

VK_NumPad5 = $65;    VK_NumPad6 = $66;    VK_NumPad7 = $67;    VK_NumPad8 = $68;

VK_NumPad9 = $69;    VK_Multiply = $6A;       VK_Add = $6B;             VK_Separator = $6C;

VK_Subtract = $6D;      VK_Decimal = $6E;      VK_Divide = $6F;          VK_F1 = $70;

VK_F2 = $71;                VK_F3 = $72;               VK_F4 = $73;                VK_F5 = $74;

VK_F6 = $75;                VK_F7 = $76;               VK_F8 = $77;                VK_F9 = $78;

VK_F10 = $79;              VK_F11 = $7A;             VK_F12 = $7B;              VK_F13 = $7C;

VK_F14 = $7D;              VK_F15 = $7E;            VK_F16 = $7F;              VK_F17 = $80;

VK_F18 = $81;              VK_F19 = $82;             VK_F20 = $83;              VK_F21 = $84;

VK_F22 = $85;              VK_F23 = $86;             VK_F24 = $87;              VK_NumLock = $90;

VK_Scroll = $91;

 

델파이에서 가상 키 코드는 키보드의 특정 키를 나타내는 정수 값입니다.

가상 키 코드는 키 이벤트 처리 및 키보드 입력 시뮬레이션에 사용됩니다.

 

델파이에서 가상 키 코드를 사용하기 위해

Windows API 함수인 VkKeyScan 및 MapVirtualKey 함수를 사용할 수 있습니다.

 

이러한 함수들을 사용하여 문자나 특정 키에 대한

가상 키 코드를 얻을 수 있습니다.

 

일반적으로 사용되는 몇 가지 델파이 가상 키 코드는 다음과 같습니다:

 

VK_BACK: 백스페이스 키

VK_TAB: 탭 키

VK_RETURN: 엔터 키

VK_SHIFT: 쉬프트 키

VK_CONTROL: 컨트롤 키

VK_MENU: 알트 키

VK_PAUSE: 일시 정지 키

VK_CAPITAL: Caps Lock 키

VK_ESCAPE: ESC 키

VK_SPACE: 스페이스 바

VK_PRIOR: 페이지 업 키

VK_NEXT: 페이지 다운 키

VK_END: End 키

VK_HOME: 홈 키

VK_LEFT: 왼쪽 화살표 키

VK_UP: 위쪽 화살표 키

VK_RIGHT: 오른쪽 화살표 키

VK_DOWN: 아래쪽 화살표 키

VK_INSERT: 삽입 키

VK_DELETE: 삭제 키

 

VK_NUMPAD0 to VK_NUMPAD9: 키패드 0에서 9까지의 숫자 키

VK_F1 to VK_F24: F1에서 F24까지의 함수 키 델파이에서

키 이벤트를 처리하거나 키보드 입력을 시뮬레이션하기 위해

가상 키 코드를 사용할 때는 Windows API 함수인 keybd_event를 사용할 수 있습니다.

 

이 함수는 가상 키 코드를 매개변수로 받아 해당 키 이벤트를 시스템에 전송합니다.

 

예를 들어, 다음은 엔터 키를 누르는 예제 코드입니다

 

keybd_event(VK_RETURN, 0, 0, 0); // 엔터 키를 누름

keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0); // 엔터 키를 놓음

 

이 예제에서 VK_RETURN은 엔터 키의 가상 키 코드를 나타냅니다.

 

첫 번째 keybd_event 호출은 해당 키를 누르는 이벤트를 전달하고,

두 번째 호출은 해당 키를 놓는 이벤트를 전달합니다.

 

델파이에서 가상 키 코드를 사용하려면 Windows 유닛을 사용하여

Windows API 함수를 선언해야 합니다.

 

예를 들어, 다음과 같은 방법으로 keybd_event 함수를 선언할 수 있습니다

 

 

unit KeybdEventUnit;

 

interface

 

uses

Windows;

 

procedure keybd_event(bVk: Byte; bScan: Byte; dwFlags: DWORD; dwExtraInfo: ULONG_PTR); stdcall; external

 

  user32 name 'keybd_event';

 

implementation

 

end.

 

이렇게 선언한 후에는 해당 유닛을 사용하여 keybd_event 함수를 호출할 수 있습니다.

이것은 일부 일반적인 델파이 가상 키 코드에 대한 설명입니다.

다양한 키 코드가 있으며, 필요에 따라 해당 키에 대한 가상 키 코드를 찾을 수 있습니다.

 

728x90
반응형

댓글