Rabbit Remote Control 0.0.30
Loading...
Searching...
No Matches
ConvertKeyCode.cpp
1// Author: Kang Lin <kl222@126.com>
3#include "ConvertKeyCode.h"
4
5CConvertKeyCode::CConvertKeyCode()
6{}
7
17UINT32 CConvertKeyCode::QtToScanCode(int key, Qt::KeyboardModifiers modifiers)
18{
19 UINT32 k = RDP_SCANCODE_UNKNOWN;
20 switch (key)
21 {
22 case Qt::Key_Escape: return RDP_SCANCODE_ESCAPE;
23 case Qt::Key_Tab: return RDP_SCANCODE_TAB;
24 case Qt::Key_Backtab: return k;
25 case Qt::Key_Backspace: return RDP_SCANCODE_BACKSPACE;
26 case Qt::Key_Return: return RDP_SCANCODE_RETURN; //大键盘Enter对应Qt::Key_Return
27 case Qt::Key_Enter: return RDP_SCANCODE_RETURN; //小键盘Enter对应Qt::Key_Enter
28 case Qt::Key_Insert: return RDP_SCANCODE_INSERT;
29 case Qt::Key_Delete: return RDP_SCANCODE_DELETE;
30 case Qt::Key_Pause: return RDP_SCANCODE_PAUSE;
31 case Qt::Key_Print: return RDP_SCANCODE_PRINTSCREEN;
32 case Qt::Key_SysReq: return RDP_SCANCODE_SYSREQ;
33 //case Qt::Key_Clear: return RDP_SCANCODE_UNKNOWN;
34 case Qt::Key_Home: return RDP_SCANCODE_HOME;
35 case Qt::Key_End: return RDP_SCANCODE_END;
36 case Qt::Key_Left: return RDP_SCANCODE_LEFT;
37 case Qt::Key_Up: return RDP_SCANCODE_UP;
38 case Qt::Key_Right: return RDP_SCANCODE_RIGHT;
39 case Qt::Key_Down: return RDP_SCANCODE_DOWN;
40 case Qt::Key_PageUp: return RDP_SCANCODE_PRIOR;
41 case Qt::Key_PageDown: return RDP_SCANCODE_NEXT;
42 case Qt::Key_Shift: return RDP_SCANCODE_LSHIFT;
43 case Qt::Key_Control: return RDP_SCANCODE_LCONTROL;
44 //case Qt::Key_Meta: return RDP_SCANCODE_UNKNOWN;
45 case Qt::Key_Alt: return RDP_SCANCODE_LMENU;
46 case Qt::Key_AltGr: return RDP_SCANCODE_RMENU;
47 case Qt::Key_CapsLock: return RDP_SCANCODE_CAPSLOCK;
48 case Qt::Key_NumLock: return RDP_SCANCODE_NUMLOCK;
49 case Qt::Key_ScrollLock: return RDP_SCANCODE_SCROLLLOCK;
50 case Qt::Key_F1: return RDP_SCANCODE_F1;
51 case Qt::Key_F2: return RDP_SCANCODE_F2;
52 case Qt::Key_F3: return RDP_SCANCODE_F3;
53 case Qt::Key_F4: return RDP_SCANCODE_F4;
54 case Qt::Key_F5: return RDP_SCANCODE_F5;
55 case Qt::Key_F6: return RDP_SCANCODE_F6;
56 case Qt::Key_F7: return RDP_SCANCODE_F7;
57 case Qt::Key_F8: return RDP_SCANCODE_F8;
58 case Qt::Key_F9: return RDP_SCANCODE_F9;
59 case Qt::Key_F10: return RDP_SCANCODE_F10;
60 case Qt::Key_F11: return RDP_SCANCODE_F11;
61 case Qt::Key_F12: return RDP_SCANCODE_F12;
62 case Qt::Key_F13: return RDP_SCANCODE_F13;
63 case Qt::Key_F14: return RDP_SCANCODE_F14;
64 case Qt::Key_F15: return RDP_SCANCODE_F15;
65 case Qt::Key_F16: return RDP_SCANCODE_F16;
66 case Qt::Key_F17: return RDP_SCANCODE_F17;
67 case Qt::Key_F18: return RDP_SCANCODE_F18;
68 case Qt::Key_F19: return RDP_SCANCODE_F19;
69 case Qt::Key_F20: return RDP_SCANCODE_F20;
70 case Qt::Key_F21: return RDP_SCANCODE_F20;
71 case Qt::Key_F22: return RDP_SCANCODE_F21;
72 case Qt::Key_F23: return RDP_SCANCODE_F22;
73 case Qt::Key_F24: return RDP_SCANCODE_F23;
74 /*
75 Qt::Key_F25
76 Qt::Key_F26
77 Qt::Key_F27
78 Qt::Key_F28
79 Qt::Key_F29
80 Qt::Key_F30
81 Qt::Key_F31
82 Qt::Key_F32
83 Qt::Key_F33
84 Qt::Key_F34
85 Qt::Key_F35
86 */
87 case Qt::Key_Super_L: return RDP_SCANCODE_LWIN;
88 case Qt::Key_Super_R: return RDP_SCANCODE_RWIN;
89 case Qt::Key_Menu: return RDP_SCANCODE_LMENU;
90 // Qt::Key_Hyper_L
91 // Qt::Key_Hyper_R
92 case Qt::Key_Help: return RDP_SCANCODE_HELP;
93 // Qt::Key_Direction_L
94 // Qt::Key_Direction_R
95 case Qt::Key_Space: return RDP_SCANCODE_SPACE;
96 //case Qt::Key_Any: return RDP_SCANCODE_SPACE;
97 case Qt::Key_Exclam: return RDP_SCANCODE_KEY_1; // !
98 case Qt::Key_QuoteDbl:return RDP_SCANCODE_OEM_7; // "
99 case Qt::Key_NumberSign: return RDP_SCANCODE_KEY_3; // #
100 case Qt::Key_Dollar: return RDP_SCANCODE_KEY_4; // $
101 case Qt::Key_Percent: return RDP_SCANCODE_KEY_5; // %
102 case Qt::Key_Ampersand: return RDP_SCANCODE_KEY_7; // &
103 case Qt::Key_Apostrophe: return RDP_SCANCODE_OEM_7; // '
104 case Qt::Key_ParenLeft: return RDP_SCANCODE_KEY_9; // (
105 case Qt::Key_ParenRight: return RDP_SCANCODE_KEY_0; // )
106 case Qt::Key_Asterisk: // *
107 {
108 if(modifiers & Qt::ShiftModifier)
109 return RDP_SCANCODE_KEY_8;
110 return RDP_SCANCODE_MULTIPLY;
111 }
112 case Qt::Key_Plus: // +
113 {
114 if(modifiers & Qt::ShiftModifier)
115 return RDP_SCANCODE_OEM_PLUS;
116 return RDP_SCANCODE_ADD;
117 }
118 case Qt::Key_Comma: return RDP_SCANCODE_OEM_COMMA; // ,
119 case Qt::Key_Minus: return RDP_SCANCODE_OEM_MINUS; // -
120 case Qt::Key_Period: return RDP_SCANCODE_OEM_PERIOD; // .
121 case Qt::Key_Slash: return RDP_SCANCODE_OEM_2; // '/'
122
123 case Qt::Key_0: return RDP_SCANCODE_KEY_0;
124 case Qt::Key_1: return RDP_SCANCODE_KEY_1;
125 case Qt::Key_2: return RDP_SCANCODE_KEY_2;
126 case Qt::Key_3: return RDP_SCANCODE_KEY_3;
127 case Qt::Key_4: return RDP_SCANCODE_KEY_4;
128 case Qt::Key_5: return RDP_SCANCODE_KEY_5;
129 case Qt::Key_6: return RDP_SCANCODE_KEY_6;
130 case Qt::Key_7: return RDP_SCANCODE_KEY_7;
131 case Qt::Key_8: return RDP_SCANCODE_KEY_8;
132 case Qt::Key_9: return RDP_SCANCODE_KEY_9;
133
134 case Qt::Key_Colon: return RDP_SCANCODE_OEM_1; // :
135 case Qt::Key_Semicolon: return RDP_SCANCODE_OEM_1; // ;
136 case Qt::Key_Less: return RDP_SCANCODE_OEM_COMMA; // <
137 case Qt::Key_Equal: return RDP_SCANCODE_OEM_PLUS; // =
138 case Qt::Key_Greater: return RDP_SCANCODE_OEM_PERIOD; // >
139 case Qt::Key_Question: return RDP_SCANCODE_OEM_2; // ?
140 case Qt::Key_At: return RDP_SCANCODE_KEY_2; // @
141
142 case Qt::Key_A: return RDP_SCANCODE_KEY_A;
143 case Qt::Key_B: return RDP_SCANCODE_KEY_B;
144 case Qt::Key_C: return RDP_SCANCODE_KEY_C;
145 case Qt::Key_D: return RDP_SCANCODE_KEY_D;
146 case Qt::Key_E: return RDP_SCANCODE_KEY_E;
147 case Qt::Key_F: return RDP_SCANCODE_KEY_F;
148 case Qt::Key_G: return RDP_SCANCODE_KEY_G;
149 case Qt::Key_H: return RDP_SCANCODE_KEY_H;
150 case Qt::Key_I: return RDP_SCANCODE_KEY_I;
151 case Qt::Key_J: return RDP_SCANCODE_KEY_J;
152 case Qt::Key_K: return RDP_SCANCODE_KEY_K;
153 case Qt::Key_L: return RDP_SCANCODE_KEY_L;
154 case Qt::Key_M: return RDP_SCANCODE_KEY_M;
155 case Qt::Key_N: return RDP_SCANCODE_KEY_N;
156 case Qt::Key_O: return RDP_SCANCODE_KEY_O;
157 case Qt::Key_P: return RDP_SCANCODE_KEY_P;
158 case Qt::Key_Q: return RDP_SCANCODE_KEY_Q;
159 case Qt::Key_R: return RDP_SCANCODE_KEY_R;
160 case Qt::Key_S: return RDP_SCANCODE_KEY_S;
161 case Qt::Key_T: return RDP_SCANCODE_KEY_T;
162 case Qt::Key_U: return RDP_SCANCODE_KEY_U;
163 case Qt::Key_V: return RDP_SCANCODE_KEY_V;
164 case Qt::Key_W: return RDP_SCANCODE_KEY_W;
165 case Qt::Key_X: return RDP_SCANCODE_KEY_X;
166 case Qt::Key_Y: return RDP_SCANCODE_KEY_Y;
167 case Qt::Key_Z: return RDP_SCANCODE_KEY_Z;
168 case Qt::Key_BracketLeft: return RDP_SCANCODE_OEM_4;
169 case Qt::Key_Backslash: return RDP_SCANCODE_OEM_5;
170 case Qt::Key_BracketRight: return RDP_SCANCODE_OEM_6;
171 case Qt::Key_AsciiCircum: return RDP_SCANCODE_KEY_6;
172 case Qt::Key_Underscore: return RDP_SCANCODE_OEM_MINUS;
173 case Qt::Key_QuoteLeft: return RDP_SCANCODE_OEM_3;
174 case Qt::Key_BraceLeft: return RDP_SCANCODE_OEM_4;
175 case Qt::Key_Bar: return RDP_SCANCODE_OEM_5;
176 case Qt::Key_BraceRight: return RDP_SCANCODE_OEM_6;
177 case Qt::Key_AsciiTilde: return RDP_SCANCODE_OEM_3;
178 /* Qt::Key_nobreakspace
179 Qt::Key_exclamdown
180 Qt::Key_cent
181 Qt::Key_sterling
182 Qt::Key_currency
183 Qt::Key_yen
184 Qt::Key_brokenbar
185 Qt::Key_section
186 Qt::Key_diaeresis
187 Qt::Key_copyright
188 Qt::Key_ordfeminine
189 Qt::Key_guillemotleft
190 Qt::Key_notsign
191 Qt::Key_hyphen
192 Qt::Key_registered
193 Qt::Key_macron
194 Qt::Key_degree
195 Qt::Key_plusminus
196 Qt::Key_twosuperior
197 Qt::Key_threesuperior
198 Qt::Key_acute
199 Qt::Key_mu
200 Qt::Key_paragraph
201 Qt::Key_periodcentered
202 Qt::Key_cedilla
203 Qt::Key_onesuperior
204 Qt::Key_masculine
205 Qt::Key_guillemotright
206 Qt::Key_onequarter
207 Qt::Key_onehalf
208 Qt::Key_threequarters
209 Qt::Key_questiondown
210 Qt::Key_Agrave
211 Qt::Key_Aacute
212 Qt::Key_Acircumflex
213 Qt::Key_Atilde
214 Qt::Key_Adiaeresis
215 Qt::Key_Aring
216 Qt::Key_AE
217 Qt::Key_Ccedilla
218 Qt::Key_Egrave
219 Qt::Key_Eacute
220 Qt::Key_Ecircumflex
221 Qt::Key_Ediaeresis
222 Qt::Key_Igrave
223 Qt::Key_Iacute
224 Qt::Key_Icircumflex
225 Qt::Key_Idiaeresis
226 Qt::Key_ETH
227 Qt::Key_Ntilde
228 Qt::Key_Ograve
229 Qt::Key_Oacute
230 Qt::Key_Ocircumflex
231 Qt::Key_Otilde
232 Qt::Key_Odiaeresis
233 Qt::Key_multiply
234 Qt::Key_Ooblique
235 Qt::Key_Ugrave
236 Qt::Key_Uacute
237 Qt::Key_Ucircumflex
238 Qt::Key_Udiaeresis
239 Qt::Key_Yacute
240 Qt::Key_THORN
241 Qt::Key_ssharp
242 Qt::Key_division
243 Qt::Key_ydiaeresis
244 Qt::Key_Multi_key
245 Qt::Key_Codeinput
246 Qt::Key_SingleCandidate
247 Qt::Key_MultipleCandidate
248 Qt::Key_PreviousCandidate
249 Qt::Key_Mode_switch
250 Qt::Key_Kanji
251 Qt::Key_Muhenkan
252 Qt::Key_Henkan
253 Qt::Key_Romaji
254 Qt::Key_Hiragana
255 Qt::Key_Katakana
256 Qt::Key_Hiragana_Katakana
257 Qt::Key_Zenkaku
258 Qt::Key_Hankaku
259 Qt::Key_Zenkaku_Hankaku
260 Qt::Key_Touroku
261 Qt::Key_Massyo
262 Qt::Key_Kana_Lock
263 Qt::Key_Kana_Shift
264 Qt::Key_Eisu_Shift
265 Qt::Key_Eisu_toggle
266 Qt::Key_Hangul
267 Qt::Key_Hangul_Start
268 Qt::Key_Hangul_End
269 Qt::Key_Hangul_Hanja
270 Qt::Key_Hangul_Jamo
271 Qt::Key_Hangul_Romaja
272 Qt::Key_Hangul_Jeonja
273 Qt::Key_Hangul_Banja
274 Qt::Key_Hangul_PreHanja
275 Qt::Key_Hangul_PostHanja
276 Qt::Key_Hangul_Special
277 Qt::Key_Dead_Grave
278 Qt::Key_Dead_Acute
279 Qt::Key_Dead_Circumflex
280 Qt::Key_Dead_Tilde
281 Qt::Key_Dead_Macron
282 Qt::Key_Dead_Breve
283 Qt::Key_Dead_Abovedot
284 Qt::Key_Dead_Diaeresis
285 Qt::Key_Dead_Abovering
286 Qt::Key_Dead_Doubleacute
287 Qt::Key_Dead_Caron
288 Qt::Key_Dead_Cedilla
289 Qt::Key_Dead_Ogonek
290 Qt::Key_Dead_Iota
291 Qt::Key_Dead_Voiced_Sound
292 Qt::Key_Dead_Semivoiced_Sound
293 Qt::Key_Dead_Belowdot
294 Qt::Key_Dead_Hook
295 Qt::Key_Dead_Horn
296 Qt::Key_Dead_Stroke
297 Qt::Key_Dead_Abovecomma
298 Qt::Key_Dead_Abovereversedcomma
299 Qt::Key_Dead_Doublegrave
300 Qt::Key_Dead_Belowring
301 Qt::Key_Dead_Belowmacron
302 Qt::Key_Dead_Belowcircumflex
303 Qt::Key_Dead_Belowtilde
304 Qt::Key_Dead_Belowbreve
305 Qt::Key_Dead_Belowdiaeresis
306 Qt::Key_Dead_Invertedbreve
307 Qt::Key_Dead_Belowcomma
308 Qt::Key_Dead_Currency
309 Qt::Key_Dead_a
310 Qt::Key_Dead_A
311 Qt::Key_Dead_e
312 Qt::Key_Dead_E
313 Qt::Key_Dead_i
314 Qt::Key_Dead_I
315 Qt::Key_Dead_o
316 Qt::Key_Dead_O
317 Qt::Key_Dead_u
318 Qt::Key_Dead_U
319 Qt::Key_Dead_Small_Schwa
320 Qt::Key_Dead_Capital_Schwa
321 Qt::Key_Dead_Greek
322 Qt::Key_Dead_Lowline
323 Qt::Key_Dead_Aboveverticalline
324 Qt::Key_Dead_Belowverticalline
325 Qt::Key_Dead_Longsolidusoverlay
326 Qt::Key_Back
327 Qt::Key_Forward
328 Qt::Key_Stop
329 Qt::Key_Refresh
330 Qt::Key_VolumeDown
331 Qt::Key_VolumeMute
332 Qt::Key_VolumeUp
333 Qt::Key_BassBoost
334 Qt::Key_BassUp
335 Qt::Key_BassDown
336 Qt::Key_TrebleUp
337 Qt::Key_TrebleDown
338 Qt::Key_MediaPlay
339 Qt::Key_MediaStop
340 Qt::Key_MediaPrevious
341 Qt::Key_MediaNext
342 Qt::Key_MediaRecord
343 Qt::Key_MediaPause
344 Qt::Key_MediaTogglePlayPause
345 Qt::Key_HomePage
346 Qt::Key_Favorites
347 Qt::Key_Search
348 Qt::Key_Standby
349 Qt::Key_OpenUrl
350 Qt::Key_LaunchMail
351 Qt::Key_LaunchMedia
352 Qt::Key_Launch0
353 Qt::Key_Launch1
354 Qt::Key_Launch2
355 Qt::Key_Launch3
356 Qt::Key_Launch4
357 Qt::Key_Launch5
358 Qt::Key_Launch6
359 Qt::Key_Launch7
360 Qt::Key_Launch8
361 Qt::Key_Launch9
362 Qt::Key_LaunchA
363 Qt::Key_LaunchB
364 Qt::Key_LaunchC
365 Qt::Key_LaunchD
366 Qt::Key_LaunchE
367 Qt::Key_LaunchF
368 Qt::Key_LaunchG
369 Qt::Key_LaunchH
370 Qt::Key_MonBrightnessUp
371 Qt::Key_MonBrightnessDown
372 Qt::Key_KeyboardLightOnOff
373 Qt::Key_KeyboardBrightnessUp
374 Qt::Key_KeyboardBrightnessDown
375 Qt::Key_PowerOff
376 Qt::Key_WakeUp
377 Qt::Key_Eject
378 Qt::Key_ScreenSaver
379 Qt::Key_WWW
380 Qt::Key_Memo
381 Qt::Key_LightBulb
382 Qt::Key_Shop
383 Qt::Key_History
384 Qt::Key_AddFavorite
385 Qt::Key_HotLinks
386 Qt::Key_BrightnessAdjust
387 Qt::Key_Finance
388 Qt::Key_Community
389 Qt::Key_AudioRewind
390 Qt::Key_BackForward
391 Qt::Key_ApplicationLeft
392 Qt::Key_ApplicationRight
393 Qt::Key_Book
394 Qt::Key_CD
395 Qt::Key_Calculator
396 Qt::Key_ToDoList
397 Qt::Key_ClearGrab
398 Qt::Key_Close
399 Qt::Key_Copy
400 Qt::Key_Cut
401 Qt::Key_Display
402 Qt::Key_DOS
403 Qt::Key_Documents
404 Qt::Key_Excel
405 Qt::Key_Explorer
406 Qt::Key_Game
407 Qt::Key_Go
408 Qt::Key_iTouch
409 Qt::Key_LogOff
410 Qt::Key_Market
411 Qt::Key_Meeting
412 Qt::Key_MenuKB
413 Qt::Key_MenuPB
414 Qt::Key_MySites
415 Qt::Key_News
416 Qt::Key_OfficeHome
417 Qt::Key_Option
418 Qt::Key_Paste
419 Qt::Key_Phone
420 Qt::Key_Calendar
421 Qt::Key_Reply
422 Qt::Key_Reload
423 Qt::Key_RotateWindows
424 Qt::Key_RotationPB
425 Qt::Key_RotationKB
426 Qt::Key_Save
427 Qt::Key_Send
428 Qt::Key_Spell
429 Qt::Key_SplitScreen
430 Qt::Key_Support
431 Qt::Key_TaskPane
432 Qt::Key_Terminal
433 Qt::Key_Tools
434 Qt::Key_Travel
435 Qt::Key_Video
436 Qt::Key_Word
437 Qt::Key_Xfer
438 Qt::Key_ZoomIn
439 Qt::Key_ZoomOut
440 Qt::Key_Away
441 Qt::Key_Messenger
442 Qt::Key_WebCam
443 Qt::Key_MailForward
444 Qt::Key_Pictures
445 Qt::Key_Music
446 Qt::Key_Battery
447 Qt::Key_Bluetooth
448 Qt::Key_WLAN
449 Qt::Key_UWB
450 Qt::Key_AudioForward
451 Qt::Key_AudioRepeat
452 Qt::Key_AudioRandomPlay
453 Qt::Key_Subtitle
454 Qt::Key_AudioCycleTrack
455 Qt::Key_Time
456 Qt::Key_Hibernate
457 Qt::Key_View
458 Qt::Key_TopMenu
459 Qt::Key_PowerDown
460 Qt::Key_Suspend
461 Qt::Key_ContrastAdjust
462 Qt::Key_TouchpadToggle
463 Qt::Key_TouchpadOn
464 Qt::Key_TouchpadOff
465 Qt::Key_MicMute
466 Qt::Key_Red
467 Qt::Key_Green
468 Qt::Key_Yellow
469 Qt::Key_Blue
470 Qt::Key_ChannelUp
471 Qt::Key_ChannelDown
472 Qt::Key_Guide
473 Qt::Key_Info
474 Qt::Key_Settings
475 Qt::Key_MicVolumeUp
476 Qt::Key_MicVolumeDown
477 Qt::Key_New
478 Qt::Key_Open
479 Qt::Key_Find
480 Qt::Key_Undo
481 Qt::Key_Redo
482 Qt::Key_MediaLast
483 Qt::Key_unknown
484 Qt::Key_Call
485 Qt::Key_Camera
486 Qt::Key_CameraFocus
487 Qt::Key_Context1
488 Qt::Key_Context2
489 Qt::Key_Context3
490 Qt::Key_Context4
491 Qt::Key_Flip
492 Qt::Key_Hangup
493 Qt::Key_No
494 Qt::Key_Select
495 Qt::Key_Yes
496 Qt::Key_ToggleCallHangup
497 Qt::Key_VoiceDial
498 Qt::Key_LastNumberRedial
499 Qt::Key_Execute
500 Qt::Key_Printer
501 Qt::Key_Play
502 Qt::Key_Sleep
503 Qt::Key_Zoom
504 Qt::Key_Exit
505 Qt::Key_Cancel
506 //*/
507 //case Qt::Key_Clear: k = XK_Clear; break;
508 }
509 return k;
510}
static UINT32 QtToScanCode(int key, Qt::KeyboardModifiers modifiers)
CConvertKeyCode::QtToScanCode.