11using System ;
2+ using System . Collections . Generic ;
23using System . IO ;
34
45public class BindingsUtils
56{
7+ private static readonly Dictionary < string , string > KeyCodeMap = new ( StringComparer . OrdinalIgnoreCase )
8+ {
9+ { "Key_Backspace" , "8" } ,
10+ { "Key_Tab" , "9" } ,
11+ { "Key_Enter" , "13" } ,
12+ { "Key_Pause" , "19" } ,
13+ { "Key_CapsLock" , "20" } ,
14+ { "Key_Kana" , "21" } ,
15+ { "Key_Kanji" , "25" } ,
16+ { "Key_Escape" , "27" } ,
17+ { "Key_Convert" , "28" } ,
18+ { "Key_NoConvert" , "29" } ,
19+ { "Key_Space" , "32" } ,
20+ { "Key_PageUp" , "33" } ,
21+ { "Key_PageDown" , "34" } ,
22+ { "Key_End" , "35" } ,
23+ { "Key_Home" , "36" } ,
24+ { "Key_LeftArrow" , "37" } ,
25+ { "Key_UpArrow" , "38" } ,
26+ { "Key_RightArrow" , "39" } ,
27+ { "Key_DownArrow" , "40" } ,
28+ { "Key_SYSRQ" , "44" } ,
29+ { "Key_Insert" , "45" } ,
30+ { "Key_Delete" , "46" } ,
31+ { "Key_0" , "48" } ,
32+ { "Key_1" , "49" } ,
33+ { "Key_2" , "50" } ,
34+ { "Key_3" , "51" } ,
35+ { "Key_4" , "52" } ,
36+ { "Key_5" , "53" } ,
37+ { "Key_6" , "54" } ,
38+ { "Key_7" , "55" } ,
39+ { "Key_8" , "56" } ,
40+ { "Key_9" , "57" } ,
41+ { "Key_A" , "65" } ,
42+ { "Key_B" , "66" } ,
43+ { "Key_C" , "67" } ,
44+ { "Key_D" , "68" } ,
45+ { "Key_E" , "69" } ,
46+ { "Key_F" , "70" } ,
47+ { "Key_G" , "71" } ,
48+ { "Key_H" , "72" } ,
49+ { "Key_I" , "73" } ,
50+ { "Key_J" , "74" } ,
51+ { "Key_K" , "75" } ,
52+ { "Key_L" , "76" } ,
53+ { "Key_M" , "77" } ,
54+ { "Key_N" , "78" } ,
55+ { "Key_O" , "79" } ,
56+ { "Key_P" , "80" } ,
57+ { "Key_Q" , "81" } ,
58+ { "Key_R" , "82" } ,
59+ { "Key_S" , "83" } ,
60+ { "Key_T" , "84" } ,
61+ { "Key_U" , "85" } ,
62+ { "Key_V" , "86" } ,
63+ { "Key_W" , "87" } ,
64+ { "Key_X" , "88" } ,
65+ { "Key_Y" , "89" } ,
66+ { "Key_Z" , "90" } ,
67+ { "Key_LeftWin" , "91" } ,
68+ { "Key_RightWin" , "92" } ,
69+ { "Key_Apps" , "93" } ,
70+ { "Key_Sleep" , "95" } ,
71+ { "Key_Numpad_0" , "96" } ,
72+ { "Key_Numpad_1" , "97" } ,
73+ { "Key_Numpad_2" , "98" } ,
74+ { "Key_Numpad_3" , "99" } ,
75+ { "Key_Numpad_4" , "100" } ,
76+ { "Key_Numpad_5" , "101" } ,
77+ { "Key_Numpad_6" , "102" } ,
78+ { "Key_Numpad_7" , "103" } ,
79+ { "Key_Numpad_8" , "104" } ,
80+ { "Key_Numpad_9" , "105" } ,
81+ { "Key_Numpad_Multiply" , "106" } ,
82+ { "Key_Numpad_Add" , "107" } ,
83+ { "Key_Numpad_Subtract" , "109" } ,
84+ { "Key_Numpad_Decimal" , "110" } ,
85+ { "Key_Numpad_Comma" , "110" } ,
86+ { "Key_Numpad_Divide" , "111" } ,
87+ { "Key_Numpad_Enter" , "156" } ,
88+ { "Key_F1" , "112" } ,
89+ { "Key_F2" , "113" } ,
90+ { "Key_F3" , "114" } ,
91+ { "Key_F4" , "115" } ,
92+ { "Key_F5" , "116" } ,
93+ { "Key_F6" , "117" } ,
94+ { "Key_F7" , "118" } ,
95+ { "Key_F8" , "119" } ,
96+ { "Key_F9" , "120" } ,
97+ { "Key_F10" , "121" } ,
98+ { "Key_F11" , "122" } ,
99+ { "Key_F12" , "123" } ,
100+ { "Key_F13" , "124" } ,
101+ { "Key_F14" , "125" } ,
102+ { "Key_F15" , "126" } ,
103+ { "Key_F16" , "127" } ,
104+ { "Key_F17" , "128" } ,
105+ { "Key_F18" , "129" } ,
106+ { "Key_F19" , "130" } ,
107+ { "Key_F20" , "131" } ,
108+ { "Key_F21" , "132" } ,
109+ { "Key_F22" , "133" } ,
110+ { "Key_F23" , "134" } ,
111+ { "Key_F24" , "135" } ,
112+ { "Key_NumLock" , "144" } ,
113+ { "Key_ScrollLock" , "145" } ,
114+ { "Key_LeftShift" , "160" } ,
115+ { "Key_RightShift" , "161" } ,
116+ { "Key_LeftControl" , "162" } ,
117+ { "Key_RightControl" , "163" } ,
118+ { "Key_LeftAlt" , "164" } ,
119+ { "Key_RightAlt" , "165" } ,
120+ { "Key_WebBack" , "166" } ,
121+ { "Key_WebForward" , "167" } ,
122+ { "Key_WebRefresh" , "168" } ,
123+ { "Key_WebStop" , "169" } ,
124+ { "Key_WebSearch" , "170" } ,
125+ { "Key_WebFavourites" , "171" } ,
126+ { "Key_WebHome" , "172" } ,
127+ { "Key_Mute" , "173" } ,
128+ { "Key_VolumeDown" , "174" } ,
129+ { "Key_VolumeUp" , "175" } ,
130+ { "Key_NextTrack" , "176" } ,
131+ { "Key_PrevTrack" , "177" } ,
132+ { "Key_MediaStop" , "178" } ,
133+ { "Key_Stop" , "178" } ,
134+ { "Key_PlayPause" , "179" } ,
135+ { "Key_Mail" , "180" } ,
136+ { "Key_MediaSelect" , "181" } ,
137+ { "Key_SemiColon" , "186" } ,
138+ { "Key_Plus" , "187" } ,
139+ { "Key_Equals" , "187" } ,
140+ { "Key_Comma" , "188" } ,
141+ { "Key_Minus" , "189" } ,
142+ { "Key_Period" , "190" } ,
143+ { "Key_Slash" , "191" } ,
144+ { "Key_Grave" , "192" } ,
145+ { "Key_LeftBracket" , "219" } ,
146+ { "Key_BackSlash" , "220" } ,
147+ { "Key_RightBracket" , "221" } ,
148+ { "Key_Apostrophe" , "222" } ,
149+ { "Key_OEM_102" , "226" } ,
150+ { "Key_ä" , "222" } ,
151+ { "Key_ö" , "192" } ,
152+ { "Key_ü" , "186" } ,
153+ { "Key_ß" , "219" } ,
154+ { "Key_Acute" , "221" } ,
155+ { "Key_LessThan" , "226" } ,
156+ { "Key_Circumflex" , "220" } ,
157+ { "Key_Hash" , "191" } ,
158+ { "Key_Colon" , "186" } ,
159+ { "Key_ABNT_C1" , "-1" } ,
160+ { "Key_Yen" , "-1" } ,
161+ { "Key_ABNT_C2" , "-1" } ,
162+ { "Key_Numpad_Equals" , "-1" } ,
163+ { "Key_Underline" , "-1" } ,
164+ { "Key_AX" , "-1" } ,
165+ { "Key_Unlabeled" , "-1" } ,
166+ { "Key_Calculator" , "-1" } ,
167+ { "Key_AT" , "-1" } ,
168+ { "Key_Power" , "-1" } ,
169+ { "Key_Wake" , "-1" } ,
170+ { "Key_MyComputer" , "-1" } ,
171+ { "Key_GreenModifier" , "-1" } ,
172+ { "Key_OrangeModifier" , "-1" }
173+ } ;
174+
6175 public static DirectoryInfo GetBindingsDirectory ( )
7176 {
8177 return new DirectoryInfo ( Path . Combine ( GetOptionsDirectory ( ) . FullName , "Bindings" ) ) ;
@@ -13,4 +182,14 @@ private static DirectoryInfo GetOptionsDirectory()
13182 var localAppData = Environment . GetFolderPath ( Environment . SpecialFolder . LocalApplicationData ) ;
14183 return new DirectoryInfo ( Path . Combine ( localAppData , "Frontier Developments" , "Elite Dangerous" , "Options" ) ) ;
15184 }
185+
186+ internal static string GetKeyCode ( string key )
187+ {
188+ if ( key == null )
189+ return "-1" ;
190+
191+ var keyCode = KeyCodeMap . TryGetValue ( key , out var code ) ? code : "-1" ;
192+
193+ return $ "[{ keyCode } ]";
194+ }
16195}
0 commit comments