R3vo/Sandbox – User

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Fix some stuff)
m (First pass)
Line 156: Line 156:
=== Personal Tools ===
=== Personal Tools ===


#include "\bin\dikCodes.h"
<syntaxhighlight lang="cpp">#include "\bin\dikCodes.h"</syntaxhighlight>


==={{arma3}}===
=== {{arma3}} ===


#include "\a3\ui_f\hpp\definedikcodes.inc"
<syntaxhighlight lang="cpp">#include "\a3\ui_f\hpp\definedikcodes.inc"</syntaxhighlight>




== Defines ==
== Defines ==


{{Informative|These DIK code #defines refer to a US QWERTY layout.}}
=== QWERTY ===


=== Alphabetic sort ===
{| class="wikitable sortable"
! Key
! Type
! DIK id
! Code
! Hexa
! Note


==== F1..15 ====
|- <!-- F1..F15 -->
<pre>
 
DIK_F1             0x3B
| F1 || F1..F15 || DIK_F1 || || 0x3B
DIK_F2             0x3C
|-
DIK_F3             0x3D
| F2 || F1..F15 || DIK_F2 || || 0x3C
DIK_F4             0x3E
|-
DIK_F5             0x3F
| F3 || F1..F15 || DIK_F3 || || 0x3D
DIK_F6             0x40
|-
DIK_F7             0x41
| F4 || F1..F15 || DIK_F4 || || 0x3E
DIK_F8             0x42
|-
DIK_F9             0x43
| F5 || F1..F15 || DIK_F5 || || 0x3F
DIK_F10             0x44
|-
DIK_F11             0x57
| F6 || F1..F15 || DIK_F6 || || 0x40
DIK_F12             0x58
|-
DIK_F13             0x64    /*                    (NEC PC98) */
| F7 || F1..F15 || DIK_F7 || || 0x41
DIK_F14            0x65   /*                    (NEC PC98) */
|-
DIK_F15            0x66   /*                    (NEC PC98) */
| F8 || F1..F15 || DIK_F8 || || 0x42
</pre>
|-
| F9 || F1..F15 || DIK_F9 || || 0x43
|-
| F10 || F1..F15 || DIK_F10 || || 0x44
|-
| F11 || F1..F15 || DIK_F11 || || 0x57
|-
| F12 || F1..F15 || DIK_F12 || || 0x58
|-
| F13 || F1..F15 || DIK_F13 || || 0x64 || NEC PC98
|-
| F14 || F1..F15 || DIK_F14 || || 0x65 || NEC PC98
|-
| F15 || F1..F15 || DIK_F15 || || 0x66 || NEC PC98
 
|- <!-- NUMERICAL -->
 
| 0 || 0..9 || DIK_0 || || 0x0B
|-
| 1 || 0..9 || DIK_1 || || 0x02
|-
| 2 || 0..9 || DIK_2 || || 0x03
|-
| 3 || 0..9 || DIK_3 || || 0x04
|-
| 4 || 0..9 || DIK_4 || || 0x05
|-
| 5 || 0..9 || DIK_5 || || 0x06
|-
| 6 || 0..9 || DIK_6 || || 0x07
|-
| 7 || 0..9 || DIK_7 || || 0x08
|-
| 8 || 0..9 || DIK_8 || || 0x09
|-
| 9 || 0..9 || DIK_9 || || 0x0A
 
|- <!-- NUMPAD -->
 
| 0 || Numpad || DIK_NUMPAD0 || || 0x52
|-
| 1 || Numpad || DIK_NUMPAD1 || || 0x4F
|-
| 2 || Numpad || DIK_NUMPAD2 || || 0x50
|-
| 3 || Numpad || DIK_NUMPAD3 || || 0x51
|-
| 4 || Numpad || DIK_NUMPAD4 || || 0x4B
|-
| 5 || Numpad || DIK_NUMPAD5 || || 0x4C
|-
| 6 || Numpad || DIK_NUMPAD6 || || 0x4D
|-
| 7 || Numpad || DIK_NUMPAD7 || || 0x47
|-
| 8 || Numpad || DIK_NUMPAD8 || || 0x48
|-
| 9 || Numpad || DIK_NUMPAD9 || || 0x49
 
|- <!-- Alphabet -->
 
| A || A..Z || DIK_A || || 0x1E
|-
| B || A..Z || DIK_B || || 0x30
|-
| C || A..Z || DIK_C || || 0x2E
|-
| D || A..Z || DIK_D || || 0x20
|-
| E || A..Z || DIK_E || || 0x12
|-
| F || A..Z || DIK_F || || 0x21
|-
| G || A..Z || DIK_G || || 0x22
|-
| H || A..Z || DIK_H || || 0x23
|-
| I || A..Z || DIK_I || || 0x17
|-
| J || A..Z || DIK_J || || 0x24
|-
| K || A..Z || DIK_K || || 0x25
|-
| L || A..Z || DIK_L || || 0x26
|-
| M || A..Z || DIK_M || || 0x32
|-
| N || A..Z || DIK_N || || 0x31
|-
| O || A..Z || DIK_O || || 0x18
|-
| P || A..Z || DIK_P || || 0x19
|-
| Q || A..Z || DIK_Q || || 0x10
|-
| R || A..Z || DIK_R || || 0x13
|-
| S || A..Z || DIK_S || || 0x1F
|-
| T || A..Z || DIK_T || || 0x14
|-
| U || A..Z || DIK_U || || 0x16
|-
| V || A..Z || DIK_V || || 0x2F
|-
| W || A..Z || DIK_W || || 0x11
|-
| X || A..Z || DIK_X || || 0x2D
|-
| Y || A..Z || DIK_Y || || 0x15
|-
| Z || A..Z || DIK_Z || || 0x2C
 
|- <!-- Control keys -->
 
| Escape || Control key || DIK_ESCAPE || || 0x01
|-
| Tab || Control key || DIK_TAB || || 0x0F
|-
| Shift (left) || Control key || DIK_LSHIFT || || 0x2A
|-
| Shift (right) || Control key || DIK_RSHIFT || || 0x36
|-
| Control (left) || Control key || DIK_LCONTROL || || 0x1D
|-
| Control (right) || Control key || DIK_RCONTROL || || 0x9D
|-
| Backspace || Control key || DIK_BACK || || 0x0E || /* backspace */
|-
|  || Control key || DIK_BACKSPACE || || DIK_BACK
|-
|  || Control key || DIK_RETURN || || 0x1C || /* Enter on main keyboard */
|-
|  || Control key || DIK_NUMPADENTER || || 0x9C || /* Enter on numeric keypad */
|-
|  || Control key || DIK_LMENU || || 0x38 || /* left Alt */
|-
|  || Control key || DIK_LALT || || DIK_LMENU
|-
|  || Control key || DIK_SPACE || || 0x39
|-
|  || Control key || DIK_CAPITAL || || 0x3A || /* capslock */
|-
|  || Control key || DIK_CAPSLOCK || || DIK_CAPITAL
|-
|  || Control key || DIK_NUMLOCK || || 0x45
|-
|  || Control key || DIK_SCROLL || || 0x46 || /* Scroll Lock */
|-
|  || Control key || DIK_RMENU || || 0xB8 || /* right Alt */
|-
|  || Control key || DIK_RALT || || DIK_RMENU || /* right Alt */
 
|- <!-- Graphics ? -->
 
|  || Graphics || DIK_AT || || 0x91   /*                    (NEC PC98) */
|-
|  || Graphics || DIK_COLON || || 0x92   /*                    (NEC PC98) */
|-
|  || Graphics || DIK_UNDERLINE || || 0x93   /*                    (NEC PC98) */
|-
|  || Graphics || DIK_MINUS || || 0x0C    /* - on main keyboard */
|-
|  || Graphics || DIK_EQUALS || || 0x0D
|-
|  || Graphics || DIK_LBRACKET || || 0x1A
|-
|  || Graphics || DIK_RBRACKET || || 0x1B
|-
|  || Graphics || DIK_SEMICOLON || || 0x27
|-
|  || Graphics || DIK_APOSTROPHE || || 0x28
|-
|  || Graphics || DIK_GRAVE || || 0x29    /* accent grave */
|-
|  || Graphics || DIK_BACKSLASH || || 0x2B
|-
|  || Graphics || DIK_COMMA || || 0x33
|-
|  || Graphics || DIK_PERIOD || || 0x34    /* . on main keyboard */
|-
|  || Graphics || DIK_SLASH || || 0x35    /* / on main keyboard */
|-
|  || Graphics || DIK_MULTIPLY || || 0x37    /* * on numeric keypad */
|-
|  || Graphics || DIK_NUMPADSTAR || || DIK_MULTIPLY
|-
|  || Graphics || DIK_SUBTRACT || || 0x4A    /* - on numeric keypad */
|-
|  || Graphics || DIK_ADD || || 0x4E    /* + on numeric keypad */
|-
|  || Graphics || DIK_DECIMAL || || 0x53    /* . on numeric keypad */
|-
|  || Graphics || DIK_NUMPADEQUALS || || 0x8D    /* = on numeric keypad (NEC PC98) */
|-
|  || Graphics || DIK_NUMPADMINUS || || DIK_SUBTRACT        /* - on numeric keypad */
|-
|  || Graphics || DIK_NUMPADPLUS || || DIK_ADD            /* + on numeric keypad */
|-
|  || Graphics || DIK_NUMPADPERIOD || || DIK_DECIMAL        /* . on numeric keypad */
|-
|  || Graphics || DIK_NUMPADSLASH || || DIK_DIVIDE          /* / on numeric keypad */
 
|- <!-- KataKana -->


==== 0..9 ====
|  || KataKana || DIK_KANA || || 0x70    /* (Japanese keyboard)            */
<pre>
|-
DIK_0              0x0B
|  || KataKana || DIK_ABNT_C1        0x73    /* / ? on Portugese (Brazilian) keyboards */
DIK_1              0x02
|-
DIK_2              0x03
|  || KataKana || DIK_CONVERT || || 0x79    /* (Japanese keyboard)            */
DIK_3              0x04
|-
DIK_4              0x05
|  || KataKana || DIK_NOCONVERT || || 0x7B    /* (Japanese keyboard)            */
DIK_5              0x06
|-
DIK_6              0x07
|  || KataKana || DIK_YEN || || 0x7D    /* (Japanese keyboard)            */
DIK_7              0x08
|-
DIK_8              0x09
|  || KataKana || DIK_OEM_102        0x56    /* < > | on UK/Germany keyboards */
DIK_9              0x0A
|-
DIK_NUMPAD0         0x52
|  || KataKana || DIK_ABNT_C2         0x7E /* Numpad . on Portugese (Brazilian) keyboards */
DIK_NUMPAD1        0x4F
|-
DIK_NUMPAD2        0x50
|  || KataKana || DIK_PREVTRACK || || 0x90    /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */
DIK_NUMPAD3        0x51
|-
DIK_NUMPAD4        0x4B
|  || KataKana || DIK_KANJI || || 0x94    /* (Japanese keyboard)            */
DIK_NUMPAD5        0x4C
|-
DIK_NUMPAD6        0x4D
|  || KataKana || DIK_STOP || || 0x95    /*                    (NEC PC98) */
DIK_NUMPAD7        0x47
|-
DIK_NUMPAD8        0x48
|  || KataKana || DIK_AX || || 0x96    /*                    (Japan AX) */
DIK_NUMPAD9        0x49
|-
</pre>
|  || KataKana || DIK_UNLABELED || || 0x97    /*                        (J3100) */
|-
|  || KataKana || DIK_NUMPADCOMMA || || 0xB3    /* , on numeric keypad (NEC PC98) */
|-
|  || KataKana || DIK_CIRCUMFLEX || || DIK_PREVTRACK      /* Japanese keyboard */ /* Alternate  names for keys originally not used on US keyboards. */


==== Alpha ====
|- <!-- Apps -->
<pre>
DIK_A              0x1E
DIK_B              0x30
DIK_C              0x2E
DIK_D              0x20
DIK_E              0x12
DIK_F              0x21
DIK_G              0x22
DIK_H              0x23
DIK_I              0x17
DIK_J              0x24
DIK_K              0x25
DIK_L              0x26
DIK_M              0x32
DIK_N              0x31
DIK_O              0x18
DIK_P              0x19
DIK_Q              0x10
DIK_R              0x13
DIK_S              0x1F
DIK_T              0x14
DIK_U              0x16
DIK_V              0x2F
DIK_W              0x11
DIK_X              0x2D
DIK_Y              0x15
DIK_Z              0x2C
</pre>


==== Controls ====
|  || Apps || DIK_NEXTTRACK || || 0x99    /* Next Track */
<pre>
|-
DIK_ESCAPE          0x01
|  || Apps || DIK_MUTE || || 0xA0    /* Mute */
DIK_TAB            0x0F
|-
DIK_LSHIFT          0x2A
|  || Apps || DIK_CALCULATOR || || 0xA1    /* Calculator */
DIK_RSHIFT          0x36
|-
DIK_LCONTROL        0x1D
|  || Apps || DIK_PLAYPAUSE || || 0xA2    /* Play / Pause */
DIK_RCONTROL        0x9D
|-
DIK_BACK            0x0E   /* backspace */
|  || Apps || DIK_MEDIASTOP || || 0xA4    /* Media Stop */
DIK_BACKSPACE      DIK_BACK
|-
DIK_RETURN          0x1C   /* Enter on main keyboard */
|  || Apps || DIK_VOLUMEDOWN || || 0xAE    /* Volume - */
DIK_NUMPADENTER    0x9C   /* Enter on numeric keypad */
|-
DIK_LMENU          0x38   /* left Alt */
|  || Apps || DIK_VOLUMEUP || || 0xB0    /* Volume + */
DIK_LALT            DIK_LMENU
|-
DIK_SPACE          0x39
|  || Apps || DIK_WEBHOME || || 0xB2    /* Web home */
DIK_CAPITAL        0x3A   /* capslock */
|-
DIK_CAPSLOCK        DIK_CAPITAL
|  || Apps || DIK_SYSRQ || || 0xB7
DIK_NUMLOCK        0x45
|-
DIK_SCROLL          0x46   /* Scroll Lock */
|  || Apps || DIK_PAUSE || || 0xC5    /* Pause */
DIK_RMENU          0xB8   /* right Alt */
|-
DIK_RALT            DIK_RMENU          /* right Alt */
|  || Apps || DIK_APPS || || 0xDD   /* AppMenu key */
</pre>
|-
|  || Apps || DIK_POWER || || 0xDE   /* System Power */
|-
|  || Apps || DIK_SLEEP || || 0xDF   /* System Sleep */
|-
|  || Apps || DIK_WAKE || || 0xE3   /* System Wake */
|-
|  || Apps || DIK_WEBSEARCH || || 0xE5    /* Web Search */
|-
|  || Apps || DIK_WEBFAVORITES || || 0xE6   /* Web Favorites */
|-
|  || Apps || DIK_WEBREFRESH || || 0xE7    /* Web Refresh */
|-
|  || Apps || DIK_WEBSTOP || || 0xE8    /* Web Stop */
|-
|  || Apps || DIK_WEBFORWARD || || 0xE9   /* Web Forward */
|-
|  || Apps || DIK_WEBBACK || || 0xEA   /* Web Back */
|-
|  || Apps || DIK_MYCOMPUTER || || 0xEB    /* My Computer */
|-
|  || Apps || DIK_MAIL || || 0xEC    /* Mail */
|-
|  || Apps || DIK_MEDIASELECT || || 0xED    /* Media Select */


==== Graphics ====
|- <!-- ArrowKeypad -->
<pre>
DIK_AT              0x91    /*                    (NEC PC98) */
DIK_COLON          0x92    /*                    (NEC PC98) */
DIK_UNDERLINE      0x93    /*                    (NEC PC98) */
DIK_MINUS          0x0C    /* - on main keyboard */
DIK_EQUALS          0x0D
DIK_LBRACKET        0x1A
DIK_RBRACKET        0x1B
DIK_SEMICOLON      0x27
DIK_APOSTROPHE      0x28
DIK_GRAVE          0x29    /* accent grave */
DIK_BACKSLASH      0x2B
DIK_COMMA          0x33
DIK_PERIOD          0x34    /* . on main keyboard */
DIK_SLASH          0x35    /* / on main keyboard */
DIK_MULTIPLY        0x37    /* * on numeric keypad */
DIK_NUMPADSTAR      DIK_MULTIPLY
DIK_SUBTRACT        0x4A    /* - on numeric keypad */
DIK_ADD            0x4E    /* + on numeric keypad */
DIK_DECIMAL        0x53    /* . on numeric keypad */
DIK_NUMPADEQUALS    0x8D    /* = on numeric keypad (NEC PC98) */
DIK_NUMPADMINUS    DIK_SUBTRACT        /* - on numeric keypad */
DIK_NUMPADPLUS      DIK_ADD            /* + on numeric keypad */
DIK_NUMPADPERIOD    DIK_DECIMAL        /* . on numeric keypad */
DIK_NUMPADSLASH    DIK_DIVIDE          /* / on numeric keypad */
</pre>


==== KataKana ====
|  || ArrowKeypad || DIK_HOME || || 0xC7   /* Home on arrow keypad */
<pre>
|-
DIK_KANA            0x70   /* (Japanese keyboard)            */
|  || ArrowKeypad || DIK_UP || || 0xC8   /* UpArrow on arrow keypad */
DIK_ABNT_C1        0x73   /* / ? on Portugese (Brazilian) keyboards */
|-
DIK_CONVERT        0x79   /* (Japanese keyboard)            */
|  || ArrowKeypad || DIK_PRIOR || || 0xC9   /* PgUp on arrow keypad */
DIK_NOCONVERT      0x7B   /* (Japanese keyboard)            */
|-
DIK_YEN            0x7D   /* (Japanese keyboard)            */
|  || ArrowKeypad || DIK_LEFT || || 0xCB   /* LeftArrow on arrow keypad */
DIK_OEM_102        0x56   /* < > | on UK/Germany keyboards */
|-
DIK_ABNT_C2        0x7E   /* Numpad . on Portugese (Brazilian) keyboards */
|  || ArrowKeypad || DIK_RIGHT || || 0xCD   /* RightArrow on arrow keypad */
DIK_PREVTRACK      0x90   /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */
|-
DIK_KANJI          0x94   /* (Japanese keyboard)            */
|  || ArrowKeypad || DIK_END || || 0xCF   /* End on arrow keypad */
DIK_STOP            0x95   /*                     (NEC PC98) */
|-
DIK_AX             0x96    /*                     (Japan AX) */
|  || ArrowKeypad || DIK_DOWN || || 0xD0   /* DownArrow on arrow keypad */
DIK_UNLABELED      0x97    /*                       (J3100) */
|-
DIK_NUMPADCOMMA    0xB3    /* , on numeric keypad (NEC PC98) */
|  || ArrowKeypad || DIK_NEXT || || 0xD1   /* PgDn on arrow keypad */
/* Alternate names for keys originally not used on US keyboards. */
|-
DIK_CIRCUMFLEX      DIK_PREVTRACK      /* Japanese keyboard */
|  || ArrowKeypad || DIK_INSERT || || 0xD2   /* Insert on arrow keypad */
</pre>
|-
|  || ArrowKeypad || DIK_DELETE || || 0xD3   /* Delete on arrow keypad */
|-
|  || ArrowKeypad || DIK_UPARROW || || DIK_UP             /* UpArrow on arrow keypad */
|-
|  || ArrowKeypad || DIK_PGUP || || DIK_PRIOR          /* PgUp on arrow keypad */
|-
|  || ArrowKeypad || DIK_LEFTARROW || || DIK_LEFT            /* LeftArrow on arrow keypad */
|-
|  || ArrowKeypad || DIK_RIGHTARROW || || DIK_RIGHT          /* RightArrow on arrow keypad */
|-
|  || ArrowKeypad || DIK_DOWNARROW || || DIK_DOWN            /* DownArrow on arrow keypad */
|-
|  || ArrowKeypad || DIK_PGDN || || DIK_NEXT            /* PgDn on arrow keypad */


==== Apps ====
|- <!-- Others -->
<pre>
DIK_NEXTTRACK      0x99    /* Next Track */
DIK_MUTE            0xA0    /* Mute */
DIK_CALCULATOR      0xA1    /* Calculator */
DIK_PLAYPAUSE      0xA2    /* Play / Pause */
DIK_MEDIASTOP      0xA4    /* Media Stop */
DIK_VOLUMEDOWN      0xAE    /* Volume - */
DIK_VOLUMEUP        0xB0    /* Volume + */
DIK_WEBHOME        0xB2    /* Web home */
DIK_SYSRQ          0xB7
DIK_PAUSE          0xC5    /* Pause */
DIK_APPS            0xDD    /* AppMenu key */
DIK_POWER          0xDE    /* System Power */
DIK_SLEEP          0xDF    /* System Sleep */
DIK_WAKE            0xE3    /* System Wake */
DIK_WEBSEARCH      0xE5    /* Web Search */
DIK_WEBFAVORITES    0xE6    /* Web Favorites */
DIK_WEBREFRESH      0xE7    /* Web Refresh */
DIK_WEBSTOP        0xE8    /* Web Stop */
DIK_WEBFORWARD      0xE9    /* Web Forward */
DIK_WEBBACK        0xEA    /* Web Back */
DIK_MYCOMPUTER      0xEB    /* My Computer */
DIK_MAIL            0xEC    /* Mail */
DIK_MEDIASELECT    0xED    /* Media Select */
</pre>


==== ArrowKeypad ====
| OS key (left) || Other || DIK_LWIN || 0xDB || /* Left Windows key */
<pre>
|-
DIK_HOME            0xC7    /* Home on arrow keypad */
| OS key (right) || || DIK_RWIN || 0xDC || /* Right Windows key */
DIK_UP              0xC8    /* UpArrow on arrow keypad */
|}
DIK_PRIOR          0xC9    /* PgUp on arrow keypad */
DIK_LEFT            0xCB    /* LeftArrow on arrow keypad */
DIK_RIGHT          0xCD    /* RightArrow on arrow keypad */
DIK_END            0xCF    /* End on arrow keypad */
DIK_DOWN            0xD0    /* DownArrow on arrow keypad */
DIK_NEXT            0xD1    /* PgDn on arrow keypad */
DIK_INSERT          0xD2    /* Insert on arrow keypad */
DIK_DELETE          0xD3    /* Delete on arrow keypad */
DIK_UPARROW        DIK_UP              /* UpArrow on arrow keypad */
DIK_PGUP            DIK_PRIOR          /* PgUp on arrow keypad */
DIK_LEFTARROW      DIK_LEFT            /* LeftArrow on arrow keypad */
DIK_RIGHTARROW      DIK_RIGHT          /* RightArrow on arrow keypad */
DIK_DOWNARROW      DIK_DOWN            /* DownArrow on arrow keypad */
DIK_PGDN            DIK_NEXT            /* PgDn on arrow keypad */
</pre>


====other====
<pre>
DIK_LWIN            0xDB    /* Left Windows key */
DIK_RWIN            0xDC    /* Right Windows key */
</pre>


=== Numeric sort ===
=== Numeric sort ===
Line 536: Line 686:
== German keyboard ==
== German keyboard ==


{| class="wikitable sortable" style="text-align:center"
{| class="wikitable sortable" style="text-align: center"
!Number
! Number
!Key Name
! Key Name
!Number
! Number
!Key Name
! Key Name
!Number
! Number
!Key Name
! Key Name
|-
|-
| 1 || ESC || 11 || 0 || 21 || Z
| 1 || ESC || 11 || 0 || 21 || Z
Line 628: Line 778:
== French keyboard ==
== French keyboard ==


{| class="wikitable" style="text-align:center"
{| class="wikitable" style="text-align: center"
!Number
! Number
!Key Name
! Key Name
!Number
! Number
!Key Name
! Key Name
!Number
! Number
!Key Name
! Key Name
|-
|-
| 1 || ESC || 11 || 0 || 21 || Y
| 1 || ESC || 11 || 0 || 21 || Y

Revision as of 15:40, 25 March 2020

Template:SideTOC Each key on any keyboard has a unique Direct Input Keyboard (DIK) code. They are not character symbols. They refer to the position of the key on the keyboard. In other words, depending on the keyboard layout, the actual key can change, but its position is always identical. This is useful to fulfill ergonomic needs.


In addition to that, using DIK codes has more advantages:

  • Recognize keys that can not be represented in character equivalents. Function keys for example have no character set code.
  • Using the defines below, makes using key codes easier in configs, since the actual code is replaced by a memorable string e.g., DIK_K instead of 0x25.
  • Unique DIK codes exist for numeric pad '9' versus standard key '9'. These are key-codes, not, characters.
Specific keys cannot be detected with DIK codes, since the position of the keys changes with the Keyboard layout (Qwerty, Dvorak).
Escape

F1
59 / 0x3B
F2
F3
F4

F5
F6
F7
F8

F9
F10
F11
F12

Prt Scr
Scr Lck
Pause

Help
`
1
2
3
4
5
6
7
8
9
0
-
=
Backspace

Insert
Home
Pg Up

Num Lck
/
*
-
Tab
Q
W
E
R
T
Y
U
I
O
P
[
]
\

Delete
End
Pg Down

7
8
9
+
Caps Lock
A
S
D
F
G
H
J
K
L
 ;
'
Enter

4
5
6
Shift
Z
X
C
V
B
N
M
,
.
/
Shift



1
2
3
Enter
Ctrl
Win
Alt
Space
Alt Gr
Win
Menu
Ctrl





0
,


Usage in scripts

DIK codes are always accompanied by the state of the SHIFT, ALT, and CTRL keys. Any script can differentiate between 'Q' and ALT-Q.

For parameters passed to key event handlers see onKeyDown EH.

Example Script

params ["_ctrl","_button","_BtnShift","_BtnCtrl","_BtnAlt"];
private _buttonDisabled = false; // true: block the original comand, false: Execute the normal command of that button private _blockInput = { _ButtonDisabled = true; };
if (_button isEqualTo 17) then // 17 = 0x11 = "W" { // For now, button W is just registered, but won't block the original command for now (player can move forward).
// If SHIFT is pressed, block "W" (walk forward) and show the systemchat message if (_BtnShift) then { systemChat "Shift+W pressed"; call _blockInput; // call to disable the original command }; };
_buttonDisabled


Headers

Personal Tools

#include "\bin\dikCodes.h"

Arma 3

#include "\a3\ui_f\hpp\definedikcodes.inc"


Defines

QWERTY

Key Type DIK id Code Hexa Note
F1 F1..F15 DIK_F1 0x3B
F2 F1..F15 DIK_F2 0x3C
F3 F1..F15 DIK_F3 0x3D
F4 F1..F15 DIK_F4 0x3E
F5 F1..F15 DIK_F5 0x3F
F6 F1..F15 DIK_F6 0x40
F7 F1..F15 DIK_F7 0x41
F8 F1..F15 DIK_F8 0x42
F9 F1..F15 DIK_F9 0x43
F10 F1..F15 DIK_F10 0x44
F11 F1..F15 DIK_F11 0x57
F12 F1..F15 DIK_F12 0x58
F13 F1..F15 DIK_F13 0x64 NEC PC98
F14 F1..F15 DIK_F14 0x65 NEC PC98
F15 F1..F15 DIK_F15 0x66 NEC PC98
0 0..9 DIK_0 0x0B
1 0..9 DIK_1 0x02
2 0..9 DIK_2 0x03
3 0..9 DIK_3 0x04
4 0..9 DIK_4 0x05
5 0..9 DIK_5 0x06
6 0..9 DIK_6 0x07
7 0..9 DIK_7 0x08
8 0..9 DIK_8 0x09
9 0..9 DIK_9 0x0A
0 Numpad DIK_NUMPAD0 0x52
1 Numpad DIK_NUMPAD1 0x4F
2 Numpad DIK_NUMPAD2 0x50
3 Numpad DIK_NUMPAD3 0x51
4 Numpad DIK_NUMPAD4 0x4B
5 Numpad DIK_NUMPAD5 0x4C
6 Numpad DIK_NUMPAD6 0x4D
7 Numpad DIK_NUMPAD7 0x47
8 Numpad DIK_NUMPAD8 0x48
9 Numpad DIK_NUMPAD9 0x49
A A..Z DIK_A 0x1E
B A..Z DIK_B 0x30
C A..Z DIK_C 0x2E
D A..Z DIK_D 0x20
E A..Z DIK_E 0x12
F A..Z DIK_F 0x21
G A..Z DIK_G 0x22
H A..Z DIK_H 0x23
I A..Z DIK_I 0x17
J A..Z DIK_J 0x24
K A..Z DIK_K 0x25
L A..Z DIK_L 0x26
M A..Z DIK_M 0x32
N A..Z DIK_N 0x31
O A..Z DIK_O 0x18
P A..Z DIK_P 0x19
Q A..Z DIK_Q 0x10
R A..Z DIK_R 0x13
S A..Z DIK_S 0x1F
T A..Z DIK_T 0x14
U A..Z DIK_U 0x16
V A..Z DIK_V 0x2F
W A..Z DIK_W 0x11
X A..Z DIK_X 0x2D
Y A..Z DIK_Y 0x15
Z A..Z DIK_Z 0x2C
Escape Control key DIK_ESCAPE 0x01
Tab Control key DIK_TAB 0x0F
Shift (left) Control key DIK_LSHIFT 0x2A
Shift (right) Control key DIK_RSHIFT 0x36
Control (left) Control key DIK_LCONTROL 0x1D
Control (right) Control key DIK_RCONTROL 0x9D
Backspace Control key DIK_BACK 0x0E /* backspace */
Control key DIK_BACKSPACE DIK_BACK
Control key DIK_RETURN 0x1C /* Enter on main keyboard */
Control key DIK_NUMPADENTER 0x9C /* Enter on numeric keypad */
Control key DIK_LMENU 0x38 /* left Alt */
Control key DIK_LALT DIK_LMENU
Control key DIK_SPACE 0x39
Control key DIK_CAPITAL 0x3A /* capslock */
Control key DIK_CAPSLOCK DIK_CAPITAL
Control key DIK_NUMLOCK 0x45
Control key DIK_SCROLL 0x46 /* Scroll Lock */
Control key DIK_RMENU 0xB8 /* right Alt */
Control key DIK_RALT DIK_RMENU /* right Alt */
Graphics DIK_AT 0x91 /* (NEC PC98) */
Graphics DIK_COLON 0x92 /* (NEC PC98) */
Graphics DIK_UNDERLINE 0x93 /* (NEC PC98) */
Graphics DIK_MINUS 0x0C /* - on main keyboard */
Graphics DIK_EQUALS 0x0D
Graphics DIK_LBRACKET 0x1A
Graphics DIK_RBRACKET 0x1B
Graphics DIK_SEMICOLON 0x27
Graphics DIK_APOSTROPHE 0x28
Graphics DIK_GRAVE 0x29 /* accent grave */
Graphics DIK_BACKSLASH 0x2B
Graphics DIK_COMMA 0x33
Graphics DIK_PERIOD 0x34 /* . on main keyboard */
Graphics DIK_SLASH 0x35 /* / on main keyboard */
Graphics DIK_MULTIPLY 0x37 /* * on numeric keypad */
Graphics DIK_NUMPADSTAR DIK_MULTIPLY
Graphics DIK_SUBTRACT 0x4A /* - on numeric keypad */
Graphics DIK_ADD 0x4E /* + on numeric keypad */
Graphics DIK_DECIMAL 0x53 /* . on numeric keypad */
Graphics DIK_NUMPADEQUALS 0x8D /* = on numeric keypad (NEC PC98) */
Graphics DIK_NUMPADMINUS DIK_SUBTRACT /* - on numeric keypad */
Graphics DIK_NUMPADPLUS DIK_ADD /* + on numeric keypad */
Graphics DIK_NUMPADPERIOD DIK_DECIMAL /* . on numeric keypad */
Graphics DIK_NUMPADSLASH DIK_DIVIDE /* / on numeric keypad */
KataKana DIK_KANA 0x70 /* (Japanese keyboard) */
KataKana DIK_ABNT_C1 0x73 /* / ? on Portugese (Brazilian) keyboards */
KataKana DIK_CONVERT 0x79 /* (Japanese keyboard) */
KataKana DIK_NOCONVERT 0x7B /* (Japanese keyboard) */
KataKana DIK_YEN 0x7D /* (Japanese keyboard) */
KataKana on UK/Germany keyboards */
KataKana DIK_ABNT_C2 0x7E /* Numpad . on Portugese (Brazilian) keyboards */
KataKana DIK_PREVTRACK 0x90 /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */
KataKana DIK_KANJI 0x94 /* (Japanese keyboard) */
KataKana DIK_STOP 0x95 /* (NEC PC98) */
KataKana DIK_AX 0x96 /* (Japan AX) */
KataKana DIK_UNLABELED 0x97 /* (J3100) */
KataKana DIK_NUMPADCOMMA 0xB3 /* , on numeric keypad (NEC PC98) */
KataKana DIK_CIRCUMFLEX DIK_PREVTRACK /* Japanese keyboard */ /* Alternate names for keys originally not used on US keyboards. */
Apps DIK_NEXTTRACK 0x99 /* Next Track */
Apps DIK_MUTE 0xA0 /* Mute */
Apps DIK_CALCULATOR 0xA1 /* Calculator */
Apps DIK_PLAYPAUSE 0xA2 /* Play / Pause */
Apps DIK_MEDIASTOP 0xA4 /* Media Stop */
Apps DIK_VOLUMEDOWN 0xAE /* Volume - */
Apps DIK_VOLUMEUP 0xB0 /* Volume + */
Apps DIK_WEBHOME 0xB2 /* Web home */
Apps DIK_SYSRQ 0xB7
Apps DIK_PAUSE 0xC5 /* Pause */
Apps DIK_APPS 0xDD /* AppMenu key */
Apps DIK_POWER 0xDE /* System Power */
Apps DIK_SLEEP 0xDF /* System Sleep */
Apps DIK_WAKE 0xE3 /* System Wake */
Apps DIK_WEBSEARCH 0xE5 /* Web Search */
Apps DIK_WEBFAVORITES 0xE6 /* Web Favorites */
Apps DIK_WEBREFRESH 0xE7 /* Web Refresh */
Apps DIK_WEBSTOP 0xE8 /* Web Stop */
Apps DIK_WEBFORWARD 0xE9 /* Web Forward */
Apps DIK_WEBBACK 0xEA /* Web Back */
Apps DIK_MYCOMPUTER 0xEB /* My Computer */
Apps DIK_MAIL 0xEC /* Mail */
Apps DIK_MEDIASELECT 0xED /* Media Select */
ArrowKeypad DIK_HOME 0xC7 /* Home on arrow keypad */
ArrowKeypad DIK_UP 0xC8 /* UpArrow on arrow keypad */
ArrowKeypad DIK_PRIOR 0xC9 /* PgUp on arrow keypad */
ArrowKeypad DIK_LEFT 0xCB /* LeftArrow on arrow keypad */
ArrowKeypad DIK_RIGHT 0xCD /* RightArrow on arrow keypad */
ArrowKeypad DIK_END 0xCF /* End on arrow keypad */
ArrowKeypad DIK_DOWN 0xD0 /* DownArrow on arrow keypad */
ArrowKeypad DIK_NEXT 0xD1 /* PgDn on arrow keypad */
ArrowKeypad DIK_INSERT 0xD2 /* Insert on arrow keypad */
ArrowKeypad DIK_DELETE 0xD3 /* Delete on arrow keypad */
ArrowKeypad DIK_UPARROW DIK_UP /* UpArrow on arrow keypad */
ArrowKeypad DIK_PGUP DIK_PRIOR /* PgUp on arrow keypad */
ArrowKeypad DIK_LEFTARROW DIK_LEFT /* LeftArrow on arrow keypad */
ArrowKeypad DIK_RIGHTARROW DIK_RIGHT /* RightArrow on arrow keypad */
ArrowKeypad DIK_DOWNARROW DIK_DOWN /* DownArrow on arrow keypad */
ArrowKeypad DIK_PGDN DIK_NEXT /* PgDn on arrow keypad */
OS key (left) Other DIK_LWIN 0xDB /* Left Windows key */
OS key (right) DIK_RWIN 0xDC /* Right Windows key */


Numeric sort

DIK_ESCAPE          0x01
DIK_1               0x02
DIK_2               0x03
DIK_3               0x04
DIK_4               0x05
DIK_5               0x06
DIK_6               0x07
DIK_7               0x08
DIK_8               0x09
DIK_9               0x0A
DIK_0               0x0B
DIK_MINUS           0x0C    /* - on main keyboard */
DIK_EQUALS          0x0D
DIK_BACK            0x0E    /* backspace */
DIK_TAB             0x0F
DIK_Q               0x10
DIK_W               0x11
DIK_E               0x12
DIK_R               0x13
DIK_T               0x14
DIK_Y               0x15
DIK_U               0x16
DIK_I               0x17
DIK_O               0x18
DIK_P               0x19
DIK_LBRACKET        0x1A
DIK_RBRACKET        0x1B
DIK_RETURN          0x1C    /* Enter on main keyboard */
DIK_LCONTROL        0x1D
DIK_A               0x1E
DIK_S               0x1F
DIK_D               0x20
DIK_F               0x21
DIK_G               0x22
DIK_H               0x23
DIK_J               0x24
DIK_K               0x25
DIK_L               0x26
DIK_SEMICOLON       0x27
DIK_APOSTROPHE      0x28
DIK_GRAVE           0x29    /* accent grave */
DIK_LSHIFT          0x2A
DIK_BACKSLASH       0x2B
DIK_Z               0x2C
DIK_X               0x2D
DIK_C               0x2E
DIK_V               0x2F
DIK_B               0x30
DIK_N               0x31
DIK_M               0x32
DIK_COMMA           0x33
DIK_PERIOD          0x34    /* . on main keyboard */
DIK_SLASH           0x35    /* / on main keyboard */
DIK_RSHIFT          0x36
DIK_MULTIPLY        0x37    /* * on numeric keypad */
DIK_LMENU           0x38    /* left Alt */
DIK_SPACE           0x39
DIK_CAPITAL         0x3A
DIK_F1              0x3B
DIK_F2              0x3C
DIK_F3              0x3D
DIK_F4              0x3E
DIK_F5              0x3F
DIK_F6              0x40
DIK_F7              0x41
DIK_F8              0x42
DIK_F9              0x43
DIK_F10             0x44
DIK_NUMLOCK         0x45
DIK_SCROLL          0x46    /* Scroll Lock */
DIK_NUMPAD7         0x47
DIK_NUMPAD8         0x48
DIK_NUMPAD9         0x49
DIK_SUBTRACT        0x4A    /* - on numeric keypad */
DIK_NUMPAD4         0x4B
DIK_NUMPAD5         0x4C
DIK_NUMPAD6         0x4D
DIK_ADD             0x4E    /* + on numeric keypad */
DIK_NUMPAD1         0x4F
DIK_NUMPAD2         0x50
DIK_NUMPAD3         0x51
DIK_NUMPAD0         0x52
DIK_DECIMAL         0x53    /* . on numeric keypad */
DIK_OEM_102         0x56    /* < > | on UK/Germany keyboards */
DIK_F11             0x57
DIK_F12             0x58
DIK_F13             0x64    /*                     (NEC PC98) */
DIK_F14             0x65    /*                     (NEC PC98) */
DIK_F15             0x66    /*                     (NEC PC98) */
DIK_KANA            0x70    /* (Japanese keyboard)            */
DIK_ABNT_C1         0x73    /* / ? on Portugese (Brazilian) keyboards */
DIK_CONVERT         0x79    /* (Japanese keyboard)            */
DIK_NOCONVERT       0x7B    /* (Japanese keyboard)            */
DIK_YEN             0x7D    /* (Japanese keyboard)            */
DIK_ABNT_C2         0x7E    /* Numpad . on Portugese (Brazilian) keyboards */
DIK_NUMPADEQUALS    0x8D    /* = on numeric keypad (NEC PC98) */
DIK_PREVTRACK       0x90    /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */
DIK_AT              0x91    /*                     (NEC PC98) */
DIK_COLON           0x92    /*                     (NEC PC98) */
DIK_UNDERLINE       0x93    /*                     (NEC PC98) */
DIK_KANJI           0x94    /* (Japanese keyboard)            */
DIK_STOP            0x95    /*                     (NEC PC98) */
DIK_AX              0x96    /*                     (Japan AX) */
DIK_UNLABELED       0x97    /*                        (J3100) */
DIK_NEXTTRACK       0x99    /* Next Track */
DIK_NUMPADENTER     0x9C    /* Enter on numeric keypad */
DIK_RCONTROL        0x9D
DIK_MUTE            0xA0    /* Mute */
DIK_CALCULATOR      0xA1    /* Calculator */
DIK_PLAYPAUSE       0xA2    /* Play / Pause */
DIK_MEDIASTOP       0xA4    /* Media Stop */
DIK_VOLUMEDOWN      0xAE    /* Volume - */
DIK_VOLUMEUP        0xB0    /* Volume + */
DIK_WEBHOME         0xB2    /* Web home */
DIK_NUMPADCOMMA     0xB3    /* , on numeric keypad (NEC PC98) */
DIK_DIVIDE          0xB5    /* / on numeric keypad */
DIK_SYSRQ           0xB7
DIK_RMENU           0xB8    /* right Alt */
DIK_PAUSE           0xC5    /* Pause */
DIK_HOME            0xC7    /* Home on arrow keypad */
DIK_UP              0xC8    /* UpArrow on arrow keypad */
DIK_PRIOR           0xC9    /* PgUp on arrow keypad */
DIK_LEFT            0xCB    /* LeftArrow on arrow keypad */
DIK_RIGHT           0xCD    /* RightArrow on arrow keypad */
DIK_END             0xCF    /* End on arrow keypad */
DIK_DOWN            0xD0    /* DownArrow on arrow keypad */
DIK_NEXT            0xD1    /* PgDn on arrow keypad */
DIK_INSERT          0xD2    /* Insert on arrow keypad */
DIK_DELETE          0xD3    /* Delete on arrow keypad */
DIK_LWIN            0xDB    /* Left Windows key */
DIK_RWIN            0xDC    /* Right Windows key */
DIK_APPS            0xDD    /* AppMenu key */
DIK_POWER           0xDE    /* System Power */
DIK_SLEEP           0xDF    /* System Sleep */
DIK_WAKE            0xE3    /* System Wake */
DIK_WEBSEARCH       0xE5    /* Web Search */
DIK_WEBFAVORITES    0xE6    /* Web Favorites */
DIK_WEBREFRESH      0xE7    /* Web Refresh */
DIK_WEBSTOP         0xE8    /* Web Stop */
DIK_WEBFORWARD      0xE9    /* Web Forward */
DIK_WEBBACK         0xEA    /* Web Back */
DIK_MYCOMPUTER      0xEB    /* My Computer */
DIK_MAIL            0xEC    /* Mail */
DIK_MEDIASELECT     0xED    /* Media Select */

/* Alternate names for keys, to facilitate transition from DOS. */
DIK_BACKSPACE       DIK_BACK            /* backspace */
DIK_NUMPADSTAR      DIK_MULTIPLY        /* * on numeric keypad */
DIK_LALT            DIK_LMENU           /* left Alt */
DIK_CAPSLOCK        DIK_CAPITAL         /* CapsLock */
DIK_NUMPADMINUS     DIK_SUBTRACT        /* - on numeric keypad */
DIK_NUMPADPLUS      DIK_ADD             /* + on numeric keypad */
DIK_NUMPADPERIOD    DIK_DECIMAL         /* . on numeric keypad */
DIK_NUMPADSLASH     DIK_DIVIDE          /* / on numeric keypad */
DIK_RALT            DIK_RMENU           /* right Alt */
DIK_UPARROW         DIK_UP              /* UpArrow on arrow keypad */
DIK_PGUP            DIK_PRIOR           /* PgUp on arrow keypad */
DIK_LEFTARROW       DIK_LEFT            /* LeftArrow on arrow keypad */
DIK_RIGHTARROW      DIK_RIGHT           /* RightArrow on arrow keypad */
DIK_DOWNARROW       DIK_DOWN            /* DownArrow on arrow keypad */
DIK_PGDN            DIK_NEXT            /* PgDn on arrow keypad */

/* Alternate names for keys originally not used on US keyboards. */
DIK_CIRCUMFLEX      DIK_PREVTRACK       /* Japanese keyboard */


German keyboard

Number Key Name Number Key Name Number Key Name
1 ESC 11 0 21 Z
2 1 12 ß 22 U
3 2 13 ´ 23 I
4 3 14 BACKSPACE 24 O
5 4 15 TAB 25 P
6 5 16 Q 26 Ü
7 6 17 W
8 7 18 E 28 ENTER
9 8 19 R 29 STRGL
10 9 20 T 30 A
31 S 41 ^ 51 ,
32 D 42 SHIFTL 52 .
33 F 43 # 53 -
34 G 44 Y 54 SHIFTR
35 H 45 X 55 NUM_*
36 J 46 C 56 ALT
37 K 47 V 57 SPACE
38 L 48 B 58 CAPS
39 Ö 49 N 59 F1
40 Ä 50 M 60 F2
61 F3 71 NUM_7 81 NUM_3
62 F4 72 NUM_8 82 NUM_0
63 F5 73 NUM_9 83 NUM_,
64 F6 74 NUM_-
65 F7 75 NUM_4
66 F8 76 NUM_5 86 <
67 F9 77 NUM_6 87 F11
68 F10 78 NUM_+ 88 F12
69 NUM 79 NUM_1
70 SCROLL 80 NUM_2
156 NUM_ENTER 200 UP 211 DELETE
157 STRGR 201 PAGEUP 219 WINR
220 WINL
181 NUM_/ 203 LEFT 221 APP
183 PRINT
184 ALTGR 205 RIGHT NOT DEFINED +
197 PAUSE 207 END
199 POS1 208 DOWN
209 PAGEDOWN
210 INSERT


French keyboard

Number Key Name Number Key Name Number Key Name
1 ESC 11 0 21 Y
2 1 12 ) 22 U
3 2 13 = 23 I
4 3 14 BACKSPACE 24 O
5 4 15 TAB 25 P
6 5 16 A 26 ^
7 6 17 Z 27 $
8 7 18 E 28 ENTER
9 8 19 R 29 CTRLG
10 9 20 T 30 Q
31 S 41 ² 51 ;
32 D 42 SHIFTL 52 :
33 F 43 * 53 !
34 G 44 W 54 SHIFTR
35 H 45 X 55 NUM_*
36 J 46 C 56 ALT
37 K 47 V 57 SPACE
38 L 48 B 58 CAPS
39 M 49 N 59 F1
40 ù 50 , 60 F2
61 F3 71 NUM_7 81 NUM_3
62 F4 72 NUM_8 82 NUM_0
63 F5 73 NUM_9 83 NUM_.
64 F6 74 NUM_-
65 F7 75 NUM_4
66 F8 76 NUM_5 86 <
67 F9 77 NUM_6 87 F11
68 F10 78 NUM_+ 88 F12
69 NUM 79 NUM_1
70 SCROLL 80 NUM_2
156 NUM_ENTER 200 UP 211 DELETE
157 CTRLR 201 PAGEUP 219 WINR
220 WINL
181 NUM_/ 203 LEFT 221 APP
183 PRINT
184 ALTGR 205 RIGHT NOT DEFINED +
197 PAUSE 207 END
199 POS1 208 DOWN
209 PAGEDOWN
210 INSERT