Skip to content

Instantly share code, notes, and snippets.

@Brandon-T
Created May 10, 2020 15:37
Show Gist options
  • Select an option

  • Save Brandon-T/f6adbb9efff4e754b27a4f91343aad1d to your computer and use it in GitHub Desktop.

Select an option

Save Brandon-T/f6adbb9efff4e754b27a4f91343aad1d to your computer and use it in GitHub Desktop.
Virtual KeyCodes for MacOS
function VirtualKeyCodeToMac(AKey: Word): Word;
begin
case AKey of
VK_LBUTTON: Result := $FFFF;
VK_RBUTTON: Result := $FFFF;
VK_CANCEL: Result := $FFFF;
VK_MBUTTON: Result := $FFFF;
VK_XBUTTON1: Result := $FFFF;
VK_XBUTTON2: Result := $FFFF;
VK_BACK: Result := $33;
VK_TAB: Result := $30;
VK_CLEAR: Result := $47;
VK_RETURN: Result := $24; //OR: VK_KEYPAD_ENTER = $4C
VK_SHIFT: Result := $38;
VK_CONTROL: Result := $3B;
VK_MENU: Result := $3A; //Left Option
VK_PAUSE: Result := $FFFF; //No Idea
VK_CAPITAL: Result := $39;
VK_KANA: Result := $68;
//VK_HANGUEL: Result := $68;
//VK_IME_ON: Result := $FFFF;
VK_JUNJA: Result := $FFFF;
VK_FINAL: Result := $FFFF;
VK_HANJA: Result := $FFFF;
//VK_KANJI: Result := $FFFF;
//VK_IME_OFF: Result := $FFFF;
VK_ESCAPE: Result := $35;
VK_CONVERT: Result := $FFFF;
VK_NONCONVERT: Result := $FFFF;
VK_ACCEPT: Result := $FFFF;
VK_MODECHANGE: Result := $FFFF;
VK_SPACE: Result := $31;
VK_PRIOR: Result := $74;
VK_NEXT: Result := $79;
VK_END: Result := $77;
VK_HOME: Result := $73;
VK_LEFT: Result := $7B;
VK_UP: Result := $7E;
VK_RIGHT: Result := $7C;
VK_DOWN: Result := $7D;
VK_SELECT: Result := $FFFF;
VK_PRINT: Result := $FFFF;
VK_EXECUTE: Result := $FFFF;
VK_SNAPSHOT: Result := $FFFF;
VK_INSERT: Result := $FFFF;
VK_DELETE: Result := $75;
VK_HELP: Result := $72;
VK_0: Result := $1D;
VK_1: Result := $12;
VK_2: Result := $13;
VK_3: Result := $14;
VK_4: Result := $15;
VK_5: Result := $17;
VK_6: Result := $16;
VK_7: Result := $1A;
VK_8: Result := $1C;
VK_9: Result := $19;
VK_A: Result := $00;
VK_B: Result := $0B;
VK_C: Result := $08;
VK_D: Result := $02;
VK_E: Result := $0E;
VK_F: Result := $03;
VK_G: Result := $05;
VK_H: Result := $04;
VK_I: Result := $22;
VK_J: Result := $26;
VK_K: Result := $28;
VK_L: Result := $25;
VK_M: Result := $2E;
VK_N: Result := $2D;
VK_O: Result := $1F;
VK_P: Result := $23;
VK_Q: Result := $0C;
VK_R: Result := $0F;
VK_S: Result := $01;
VK_T: Result := $11;
VK_U: Result := $20;
VK_V: Result := $09;
VK_W: Result := $0D;
VK_X: Result := $07;
VK_Y: Result := $10;
VK_Z: Result := $06;
VK_LWIN: Result := $37; //Left Command
VK_RWIN: Result := $36; //Right Command
VK_APPS: Result := $3D; //Right Option???
VK_SLEEP: Result := $FFFF;
VK_NUMPAD0: Result := $52;
VK_NUMPAD1: Result := $53;
VK_NUMPAD2: Result := $54;
VK_NUMPAD3: Result := $55;
VK_NUMPAD4: Result := $56;
VK_NUMPAD5: Result := $57;
VK_NUMPAD6: Result := $58;
VK_NUMPAD7: Result := $59;
VK_NUMPAD8: Result := $5B;
VK_NUMPAD9: Result := $5C;
VK_MULTIPLY: Result := $43;
VK_ADD: Result := $45;
VK_SEPARATOR: Result := $2B; //Separator used will be VK_COMMA instead of VK_PERIOD
VK_SUBTRACT: Result := $4E;
VK_DECIMAL: Result := $41;
VK_DIVIDE: Result := $4B;
VK_F1: Result := $7A;
VK_F2: Result := $78;
VK_F3: Result := $63;
VK_F4: Result := $76;
VK_F5: Result := $60;
VK_F6: Result := $61;
VK_F7: Result := $62;
VK_F8: Result := $64;
VK_F9: Result := $65;
VK_F10: Result := $6D;
VK_F11: Result := $67;
VK_F12: Result := $6F;
VK_F13: Result := $69;
VK_F14: Result := $6B;
VK_F15: Result := $71;
VK_F16: Result := $6A;
VK_F17: Result := $40;
VK_F18: Result := $4F;
VK_F19: Result := $50;
VK_F20: Result := $5A;
VK_F21: Result := $FFFF;
VK_F22: Result := $FFFF;
VK_F23: Result := $FFFF;
VK_F24: Result := $FFFF;
VK_NUMLOCK: Result := $FFFF; //OR VK_NUMPAD_CLEAR = $47
VK_SCROLL: Result := $FFFF; //No idea..
VK_LSHIFT: Result := $38;
VK_RSHIFT: Result := $3C;
VK_LCONTROL: Result := $3B;
VK_RCONTROL: Result := $3E;
VK_LMENU: Result := $3A; //Left Option Key
VK_RMENU: Result := $3D; //Right Option Key
VK_BROWSER_BACK: Result := $FFFF;
VK_BROWSER_REFRESH: Result := $FFFF;
VK_BROWSER_STOP: Result := $FFFF;
VK_BROWSER_SEARCH: Result := $FFFF;
VK_BROWSER_FAVORITES: Result := $FFFF;
VK_BROWSER_HOME: Result := $FFFF;
VK_VOLUME_MUTE: Result := $4A;
VK_VOLUME_DOWN: Result := $49;
VK_VOLUME_UP: Result := $48;
VK_MEDIA_NEXT_TRACK: Result := $FFFF;
VK_MEDIA_PREV_TRACK: Result := $FFFF;
VK_MEDIA_STOP: Result := $FFFF;
VK_MEDIA_PLAY_PAUSE: Result := $FFFF;
VK_LAUNCH_MAIL: Result := $FFFF;
VK_LAUNCH_MEDIA_SELECT: Result := $FFFF;
VK_LAUNCH_APP1: Result := $FFFF;
VK_LAUNCH_APP2: Result := $FFFF;
VK_OEM_1: Result := $29; // ;:
VK_OEM_PLUS: Result := $45;
VK_OEM_MINUS: Result := $1B;
VK_OEM_PERIOD: Result := $2F;
VK_OEM_2: Result := $2C; // /?
VK_OEM_3: Result := $32; // `~
VK_OEM_4: Result := $21; // [{
VK_OEM_5: Result := $2A; // \|
VK_OEM_6: Result := $1E; // ]}
VK_OEM_7: Result := $27; // '"
VK_OEM_8: Result := $FFFF; //Misc
$E1: Result := $18; //VK_EQUAL
VK_OEM_102: Result := $2A; // backslash RT-102
$E3: Result := $51; //VK_KEYPAD_EQUALS
$E4: Result := $3F; //VK_FUNCTION
VK_PROCESSKEY: Result := $FFFF;
//VK_PACKET: Result := $FFFF;
VK_ATTN: Result := $FFFF;
VK_CRSEL: Result := $FFFF;
VK_EXSEL: Result := $FFFF;
VK_EREOF: Result := $FFFF;
VK_PLAY: Result := $FFFF; //No idea
VK_ZOOM: Result := $FFFF;
VK_NONAME: Result := $FFFF;
VK_PA1: Result := $FFFF;
VK_OEM_CLEAR: Result := $47;
else
Result := $FFFF;
end;
end;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment