OSDN Git Service

入力したキーと表示されるキーが異なる現象を修正。
[dtxmania/dtxmania.git] / FDK17プロジェクト / コード / 02.入力 / DeviceConstantConverter.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Windows.Forms;\r
5 using SharpDX.DirectInput;\r
6 \r
7 namespace FDK\r
8 {\r
9         public class DeviceConstantConverter\r
10         {\r
11                 // メソッド\r
12 \r
13                 #region [ SlimDX 用メソッド。SharpDX では DIK(int) と同じ値になるので、廃止。]\r
14                 //public static Key DIKtoKey( int dik )\r
15                 //{\r
16                 //      switch( dik )\r
17                 //      {\r
18                 //              case 1:\r
19                 //                      return Key.Escape;\r
20 \r
21                 //              case 2:\r
22                 //                      return Key.D1;\r
23 \r
24                 //              case 3:\r
25                 //                      return Key.D2;\r
26 \r
27                 //              case 4:\r
28                 //                      return Key.D3;\r
29 \r
30                 //              case 5:\r
31                 //                      return Key.D4;\r
32 \r
33                 //              case 6:\r
34                 //                      return Key.D5;\r
35 \r
36                 //              case 7:\r
37                 //                      return Key.D6;\r
38 \r
39                 //              case 8:\r
40                 //                      return Key.D7;\r
41 \r
42                 //              case 9:\r
43                 //                      return Key.D8;\r
44 \r
45                 //              case 10:\r
46                 //                      return Key.D9;\r
47 \r
48                 //              case 11:\r
49                 //                      return Key.D0;\r
50 \r
51                 //              case 12:\r
52                 //                      return Key.Minus;\r
53 \r
54                 //              case 13:\r
55                 //                      return Key.Equals;\r
56 \r
57                 //              case 14:\r
58                 //                      return Key.Back;\r
59 \r
60                 //              case 15:\r
61                 //                      return Key.Tab;\r
62 \r
63                 //              case 0x10:\r
64                 //                      return Key.Q;\r
65 \r
66                 //              case 0x11:\r
67                 //                      return Key.W;\r
68 \r
69                 //              case 0x12:\r
70                 //                      return Key.E;\r
71 \r
72                 //              case 0x13:\r
73                 //                      return Key.R;\r
74 \r
75                 //              case 20:\r
76                 //                      return Key.T;\r
77 \r
78                 //              case 0x15:\r
79                 //                      return Key.Y;\r
80 \r
81                 //              case 0x16:\r
82                 //                      return Key.U;\r
83 \r
84                 //              case 0x17:\r
85                 //                      return Key.I;\r
86 \r
87                 //              case 0x18:\r
88                 //                      return Key.O;\r
89 \r
90                 //              case 0x19:\r
91                 //                      return Key.P;\r
92 \r
93                 //              case 0x1a:\r
94                 //                      return Key.LeftBracket;\r
95 \r
96                 //              case 0x1b:\r
97                 //                      return Key.RightBracket;\r
98 \r
99                 //              case 0x1c:\r
100                 //                      return Key.Return;\r
101 \r
102                 //              case 0x1d:\r
103                 //                      return Key.LeftControl;\r
104 \r
105                 //              case 30:\r
106                 //                      return Key.A;\r
107 \r
108                 //              case 0x1f:\r
109                 //                      return Key.S;\r
110 \r
111                 //              case 0x20:\r
112                 //                      return Key.D;\r
113 \r
114                 //              case 0x21:\r
115                 //                      return Key.F;\r
116 \r
117                 //              case 0x22:\r
118                 //                      return Key.G;\r
119 \r
120                 //              case 0x23:\r
121                 //                      return Key.H;\r
122 \r
123                 //              case 0x24:\r
124                 //                      return Key.J;\r
125 \r
126                 //              case 0x25:\r
127                 //                      return Key.K;\r
128 \r
129                 //              case 0x26:\r
130                 //                      return Key.L;\r
131 \r
132                 //              case 0x27:\r
133                 //                      return Key.Semicolon;\r
134 \r
135                 //              case 40:\r
136                 //                      return Key.Apostrophe;\r
137 \r
138                 //              case 0x29:\r
139                 //                      return Key.Grave;\r
140 \r
141                 //              case 0x2a:\r
142                 //                      return Key.LeftShift;\r
143 \r
144                 //              case 0x2b:\r
145                 //                      return Key.Backslash;\r
146 \r
147                 //              case 0x2c:\r
148                 //                      return Key.Z;\r
149 \r
150                 //              case 0x2d:\r
151                 //                      return Key.X;\r
152 \r
153                 //              case 0x2e:\r
154                 //                      return Key.C;\r
155 \r
156                 //              case 0x2f:\r
157                 //                      return Key.V;\r
158 \r
159                 //              case 0x30:\r
160                 //                      return Key.B;\r
161 \r
162                 //              case 0x31:\r
163                 //                      return Key.N;\r
164 \r
165                 //              case 50:\r
166                 //                      return Key.M;\r
167 \r
168                 //              case 0x33:\r
169                 //                      return Key.Comma;\r
170 \r
171                 //              case 0x34:\r
172                 //                      return Key.Period;\r
173 \r
174                 //              case 0x35:\r
175                 //                      return Key.Slash;\r
176 \r
177                 //              case 0x36:\r
178                 //                      return Key.RightShift;\r
179 \r
180                 //              case 0x37:\r
181                 //                      return Key.Multiply;\r
182 \r
183                 //              case 0x38:\r
184                 //                      return Key.LeftAlt;\r
185 \r
186                 //              case 0x39:\r
187                 //                      return Key.Space;\r
188 \r
189                 //              case 0x3a:\r
190                 //                      return Key.Capital;\r
191 \r
192                 //              case 0x3b:\r
193                 //                      return Key.F1;\r
194 \r
195                 //              case 60:\r
196                 //                      return Key.F2;\r
197 \r
198                 //              case 0x3d:\r
199                 //                      return Key.F3;\r
200 \r
201                 //              case 0x3e:\r
202                 //                      return Key.F4;\r
203 \r
204                 //              case 0x3f:\r
205                 //                      return Key.F5;\r
206 \r
207                 //              case 0x40:\r
208                 //                      return Key.F6;\r
209 \r
210                 //              case 0x41:\r
211                 //                      return Key.F7;\r
212 \r
213                 //              case 0x42:\r
214                 //                      return Key.F8;\r
215 \r
216                 //              case 0x43:\r
217                 //                      return Key.F9;\r
218 \r
219                 //              case 0x44:\r
220                 //                      return Key.F10;\r
221 \r
222                 //              case 0x45:\r
223                 //                      return Key.NumberLock;\r
224 \r
225                 //              case 70:\r
226                 //                      return Key.ScrollLock;\r
227 \r
228                 //              case 0x47:\r
229                 //                      return Key.NumberPad7;\r
230 \r
231                 //              case 0x48:\r
232                 //                      return Key.NumberPad8;\r
233 \r
234                 //              case 0x49:\r
235                 //                      return Key.NumberPad9;\r
236 \r
237                 //              case 0x4a:\r
238                 //                      return Key.Subtract;\r
239 \r
240                 //              case 0x4b:\r
241                 //                      return Key.NumberPad4;\r
242 \r
243                 //              case 0x4c:\r
244                 //                      return Key.NumberPad5;\r
245 \r
246                 //              case 0x4d:\r
247                 //                      return Key.NumberPad6;\r
248 \r
249                 //              case 0x4e:\r
250                 //                      return Key.Add;\r
251 \r
252                 //              case 0x4f:\r
253                 //                      return Key.NumberPad1;\r
254 \r
255                 //              case 80:\r
256                 //                      return Key.NumberPad2;\r
257 \r
258                 //              case 0x51:\r
259                 //                      return Key.NumberPad3;\r
260 \r
261                 //              case 0x52:\r
262                 //                      return Key.NumberPad0;\r
263 \r
264                 //              case 0x53:\r
265                 //                      return Key.Decimal;\r
266 \r
267                 //              case 0x56:\r
268                 //                      return Key.Oem102;\r
269 \r
270                 //              case 0x57:\r
271                 //                      return Key.F11;\r
272 \r
273                 //              case 0x58:\r
274                 //                      return Key.F12;\r
275 \r
276                 //              case 100:\r
277                 //                      return Key.F13;\r
278 \r
279                 //              case 0x65:\r
280                 //                      return Key.F14;\r
281 \r
282                 //              case 0x66:\r
283                 //                      return Key.F15;\r
284 \r
285                 //              case 0x70:\r
286                 //                      return Key.Kana;\r
287 \r
288                 //              case 0x73:\r
289                 //                      return Key.AbntC1;\r
290 \r
291                 //              case 0x79:\r
292                 //                      return Key.Convert;\r
293 \r
294                 //              case 0x7b:\r
295                 //                      return Key.NoConvert;\r
296 \r
297                 //              case 0x7d:\r
298                 //                      return Key.Yen;\r
299 \r
300                 //              case 0x7e:\r
301                 //                      return Key.AbntC2;\r
302 \r
303                 //              case 0x8d:\r
304                 //                      return Key.NumberPadEquals;\r
305 \r
306                 //              case 0x90:\r
307                 //                      return Key.PreviousTrack;\r
308 \r
309                 //              case 0x91:\r
310                 //                      return Key.AT;\r
311 \r
312                 //              case 0x92:\r
313                 //                      return Key.Colon;\r
314 \r
315                 //              case 0x93:\r
316                 //                      return Key.Underline;\r
317 \r
318                 //              case 0x94:\r
319                 //                      return Key.Kanji;\r
320 \r
321                 //              case 0x95:\r
322                 //                      return Key.Stop;\r
323 \r
324                 //              case 150:\r
325                 //                      return Key.AX;\r
326 \r
327                 //              case 0x97:\r
328                 //                      return Key.Unlabeled;\r
329 \r
330                 //              case 0x99:\r
331                 //                      return Key.NextTrack;\r
332 \r
333                 //              case 0x9c:\r
334                 //                      return Key.NumberPadEnter;\r
335 \r
336                 //              case 0x9d:\r
337                 //                      return Key.RightControl;\r
338 \r
339                 //              case 160:\r
340                 //                      return Key.Mute;\r
341 \r
342                 //              case 0xa1:\r
343                 //                      return Key.Calculator;\r
344 \r
345                 //              case 0xa2:\r
346                 //                      return Key.PlayPause;\r
347 \r
348                 //              case 0xa4:\r
349                 //                      return Key.MediaStop;\r
350 \r
351                 //              case 0xae:\r
352                 //                      return Key.VolumeDown;\r
353 \r
354                 //              case 0xb0:\r
355                 //                      return Key.VolumeUp;\r
356 \r
357                 //              case 0xb2:\r
358                 //                      return Key.WebHome;\r
359 \r
360                 //              case 0xb3:\r
361                 //                      return Key.NumberPadComma;\r
362 \r
363                 //              case 0xb5:\r
364                 //                      return Key.Divide;\r
365 \r
366                 //              case 0xb7:\r
367                 //                      return Key.PrintScreen;\r
368 \r
369                 //              case 0xb8:\r
370                 //                      return Key.RightAlt;\r
371 \r
372                 //              case 0xc5:\r
373                 //                      return Key.Pause;\r
374 \r
375                 //              case 0xc7:\r
376                 //                      return Key.Home;\r
377 \r
378                 //              case 200:\r
379                 //                      return Key.Up;\r
380 \r
381                 //              case 0xc9:\r
382                 //                      return Key.PageUp;\r
383 \r
384                 //              case 0xcb:\r
385                 //                      return Key.Left;\r
386 \r
387                 //              case 0xcd:\r
388                 //                      return Key.Right;\r
389 \r
390                 //              case 0xcf:\r
391                 //                      return Key.End;\r
392 \r
393                 //              case 0xd0:\r
394                 //                      return Key.Down;\r
395 \r
396                 //              case 0xd1:\r
397                 //                      return Key.PageDown;\r
398 \r
399                 //              case 210:\r
400                 //                      return Key.Insert;\r
401 \r
402                 //              case 0xd3:\r
403                 //                      return Key.Delete;\r
404 \r
405                 //              case 0xdb:\r
406                 //                      return Key.LeftWindowsKey;\r
407 \r
408                 //              case 220:\r
409                 //                      return Key.RightWindowsKey;\r
410 \r
411                 //              case 0xdd:\r
412                 //                      return Key.Applications;\r
413 \r
414                 //              case 0xde:\r
415                 //                      return Key.Power;\r
416 \r
417                 //              case 0xdf:\r
418                 //                      return Key.Sleep;\r
419 \r
420                 //              case 0xe3:\r
421                 //                      return Key.Wake;\r
422 \r
423                 //              case 0xe5:\r
424                 //                      return Key.WebSearch;\r
425 \r
426                 //              case 230:\r
427                 //                      return Key.WebFavorites;\r
428 \r
429                 //              case 0xe7:\r
430                 //                      return Key.WebRefresh;\r
431 \r
432                 //              case 0xe8:\r
433                 //                      return Key.WebStop;\r
434 \r
435                 //              case 0xe9:\r
436                 //                      return Key.WebForward;\r
437 \r
438                 //              case 0xea:\r
439                 //                      return Key.WebBack;\r
440 \r
441                 //              case 0xeb:\r
442                 //                      return Key.MyComputer;\r
443 \r
444                 //              case 0xec:\r
445                 //                      return Key.Mail;\r
446 \r
447                 //              case 0xed:\r
448                 //                      return Key.MediaSelect;\r
449                 //      }\r
450                 //      return Key.Unknown;\r
451                 //}\r
452 \r
453                 //public static int KeyToDIK( Key key )\r
454                 //{\r
455                 //      switch( key )\r
456                 //      {\r
457                 //              case Key.D0:\r
458                 //                      return 11;\r
459 \r
460                 //              case Key.D1:\r
461                 //                      return 2;\r
462 \r
463                 //              case Key.D2:\r
464                 //                      return 3;\r
465 \r
466                 //              case Key.D3:\r
467                 //                      return 4;\r
468 \r
469                 //              case Key.D4:\r
470                 //                      return 5;\r
471 \r
472                 //              case Key.D5:\r
473                 //                      return 6;\r
474 \r
475                 //              case Key.D6:\r
476                 //                      return 7;\r
477 \r
478                 //              case Key.D7:\r
479                 //                      return 8;\r
480 \r
481                 //              case Key.D8:\r
482                 //                      return 9;\r
483 \r
484                 //              case Key.D9:\r
485                 //                      return 10;\r
486 \r
487                 //              case Key.A:\r
488                 //                      return 30;\r
489 \r
490                 //              case Key.B:\r
491                 //                      return 0x30;\r
492 \r
493                 //              case Key.C:\r
494                 //                      return 0x2e;\r
495 \r
496                 //              case Key.D:\r
497                 //                      return 0x20;\r
498 \r
499                 //              case Key.E:\r
500                 //                      return 0x12;\r
501 \r
502                 //              case Key.F:\r
503                 //                      return 0x21;\r
504 \r
505                 //              case Key.G:\r
506                 //                      return 0x22;\r
507 \r
508                 //              case Key.H:\r
509                 //                      return 0x23;\r
510 \r
511                 //              case Key.I:\r
512                 //                      return 0x17;\r
513 \r
514                 //              case Key.J:\r
515                 //                      return 0x24;\r
516 \r
517                 //              case Key.K:\r
518                 //                      return 0x25;\r
519 \r
520                 //              case Key.L:\r
521                 //                      return 0x26;\r
522 \r
523                 //              case Key.M:\r
524                 //                      return 50;\r
525 \r
526                 //              case Key.N:\r
527                 //                      return 0x31;\r
528 \r
529                 //              case Key.O:\r
530                 //                      return 0x18;\r
531 \r
532                 //              case Key.P:\r
533                 //                      return 0x19;\r
534 \r
535                 //              case Key.Q:\r
536                 //                      return 0x10;\r
537 \r
538                 //              case Key.R:\r
539                 //                      return 0x13;\r
540 \r
541                 //              case Key.S:\r
542                 //                      return 0x1f;\r
543 \r
544                 //              case Key.T:\r
545                 //                      return 20;\r
546 \r
547                 //              case Key.U:\r
548                 //                      return 0x16;\r
549 \r
550                 //              case Key.V:\r
551                 //                      return 0x2f;\r
552 \r
553                 //              case Key.W:\r
554                 //                      return 0x11;\r
555 \r
556                 //              case Key.X:\r
557                 //                      return 0x2d;\r
558 \r
559                 //              case Key.Y:\r
560                 //                      return 0x15;\r
561 \r
562                 //              case Key.Z:\r
563                 //                      return 0x2c;\r
564 \r
565                 //              case Key.AbntC1:\r
566                 //                      return 0x73;\r
567 \r
568                 //              case Key.AbntC2:\r
569                 //                      return 0x7e;\r
570 \r
571                 //              case Key.Apostrophe:\r
572                 //                      return 40;\r
573 \r
574                 //              case Key.Applications:\r
575                 //                      return 0xdd;\r
576 \r
577                 //              case Key.AT:\r
578                 //                      return 0x91;\r
579 \r
580                 //              case Key.AX:\r
581                 //                      return 150;\r
582 \r
583                 //              case Key.Back:\r
584                 //                      return 14;\r
585 \r
586                 //              case Key.Backslash:\r
587                 //                      return 0x2b;\r
588 \r
589                 //              case Key.Calculator:\r
590                 //                      return 0xa1;\r
591 \r
592                 //              case Key.Capital:\r
593                 //                      return 0x3a;\r
594 \r
595                 //              case Key.Colon:\r
596                 //                      return 0x92;\r
597 \r
598                 //              case Key.Comma:\r
599                 //                      return 0x33;\r
600 \r
601                 //              case Key.Convert:\r
602                 //                      return 0x79;\r
603 \r
604                 //              case Key.Delete:\r
605                 //                      return 0xd3;\r
606 \r
607                 //              case Key.Down:\r
608                 //                      return 0xd0;\r
609 \r
610                 //              case Key.End:\r
611                 //                      return 0xcf;\r
612 \r
613                 //              case Key.Equals:\r
614                 //                      return 13;\r
615 \r
616                 //              case Key.Escape:\r
617                 //                      return 1;\r
618 \r
619                 //              case Key.F1:\r
620                 //                      return 0x3b;\r
621 \r
622                 //              case Key.F2:\r
623                 //                      return 60;\r
624 \r
625                 //              case Key.F3:\r
626                 //                      return 0x3d;\r
627 \r
628                 //              case Key.F4:\r
629                 //                      return 0x3e;\r
630 \r
631                 //              case Key.F5:\r
632                 //                      return 0x3f;\r
633 \r
634                 //              case Key.F6:\r
635                 //                      return 0x40;\r
636 \r
637                 //              case Key.F7:\r
638                 //                      return 0x41;\r
639 \r
640                 //              case Key.F8:\r
641                 //                      return 0x42;\r
642 \r
643                 //              case Key.F9:\r
644                 //                      return 0x43;\r
645 \r
646                 //              case Key.F10:\r
647                 //                      return 0x44;\r
648 \r
649                 //              case Key.F11:\r
650                 //                      return 0x57;\r
651 \r
652                 //              case Key.F12:\r
653                 //                      return 0x58;\r
654 \r
655                 //              case Key.F13:\r
656                 //                      return 100;\r
657 \r
658                 //              case Key.F14:\r
659                 //                      return 0x65;\r
660 \r
661                 //              case Key.F15:\r
662                 //                      return 0x66;\r
663 \r
664                 //              case Key.Grave:\r
665                 //                      return 0x29;\r
666 \r
667                 //              case Key.Home:\r
668                 //                      return 0xc7;\r
669 \r
670                 //              case Key.Insert:\r
671                 //                      return 210;\r
672 \r
673                 //              case Key.Kana:\r
674                 //                      return 0x70;\r
675 \r
676                 //              case Key.Kanji:\r
677                 //                      return 0x94;\r
678 \r
679                 //              case Key.LeftBracket:\r
680                 //                      return 0x1a;\r
681 \r
682                 //              case Key.LeftControl:\r
683                 //                      return 0x1d;\r
684 \r
685                 //              case Key.Left:\r
686                 //                      return 0xcb;\r
687 \r
688                 //              case Key.LeftAlt:\r
689                 //                      return 0x38;\r
690 \r
691                 //              case Key.LeftShift:\r
692                 //                      return 0x2a;\r
693 \r
694                 //              case Key.LeftWindowsKey:\r
695                 //                      return 0xdb;\r
696 \r
697                 //              case Key.Mail:\r
698                 //                      return 0xec;\r
699 \r
700                 //              case Key.MediaSelect:\r
701                 //                      return 0xed;\r
702 \r
703                 //              case Key.MediaStop:\r
704                 //                      return 0xa4;\r
705 \r
706                 //              case Key.Minus:\r
707                 //                      return 12;\r
708 \r
709                 //              case Key.Mute:\r
710                 //                      return 160;\r
711 \r
712                 //              case Key.MyComputer:\r
713                 //                      return 0xeb;\r
714 \r
715                 //              case Key.NextTrack:\r
716                 //                      return 0x99;\r
717 \r
718                 //              case Key.NoConvert:\r
719                 //                      return 0x7b;\r
720 \r
721                 //              case Key.NumberLock:\r
722                 //                      return 0x45;\r
723 \r
724                 //              case Key.NumberPad0:\r
725                 //                      return 0x52;\r
726 \r
727                 //              case Key.NumberPad1:\r
728                 //                      return 0x4f;\r
729 \r
730                 //              case Key.NumberPad2:\r
731                 //                      return 80;\r
732 \r
733                 //              case Key.NumberPad3:\r
734                 //                      return 0x51;\r
735 \r
736                 //              case Key.NumberPad4:\r
737                 //                      return 0x4b;\r
738 \r
739                 //              case Key.NumberPad5:\r
740                 //                      return 0x4c;\r
741 \r
742                 //              case Key.NumberPad6:\r
743                 //                      return 0x4d;\r
744 \r
745                 //              case Key.NumberPad7:\r
746                 //                      return 0x47;\r
747 \r
748                 //              case Key.NumberPad8:\r
749                 //                      return 0x48;\r
750 \r
751                 //              case Key.NumberPad9:\r
752                 //                      return 0x49;\r
753 \r
754                 //              case Key.NumberPadComma:\r
755                 //                      return 0xb3;\r
756 \r
757                 //              case Key.NumberPadEnter:\r
758                 //                      return 0x9c;\r
759 \r
760                 //              case Key.NumberPadEquals:\r
761                 //                      return 0x8d;\r
762 \r
763                 //              case Key.Subtract:\r
764                 //                      return 0x4a;\r
765 \r
766                 //              case Key.Decimal:\r
767                 //                      return 0x53;\r
768 \r
769                 //              case Key.Add:\r
770                 //                      return 0x4e;\r
771 \r
772                 //              case Key.Divide:\r
773                 //                      return 0xb5;\r
774 \r
775                 //              case Key.Multiply:\r
776                 //                      return 0x37;\r
777 \r
778                 //              case Key.Oem102:\r
779                 //                      return 0x56;\r
780 \r
781                 //              case Key.PageDown:\r
782                 //                      return 0xd1;\r
783 \r
784                 //              case Key.PageUp:\r
785                 //                      return 0xc9;\r
786 \r
787                 //              case Key.Pause:\r
788                 //                      return 0xc5;\r
789 \r
790                 //              case Key.Period:\r
791                 //                      return 0x34;\r
792 \r
793                 //              case Key.PlayPause:\r
794                 //                      return 0xa2;\r
795 \r
796                 //              case Key.Power:\r
797                 //                      return 0xde;\r
798 \r
799                 //              case Key.PreviousTrack:\r
800                 //                      return 0x90;\r
801 \r
802                 //              case Key.RightBracket:\r
803                 //                      return 0x1b;\r
804 \r
805                 //              case Key.RightControl:\r
806                 //                      return 0x9d;\r
807 \r
808                 //              case Key.Return:\r
809                 //                      return 0x1c;\r
810 \r
811                 //              case Key.Right:\r
812                 //                      return 0xcd;\r
813 \r
814                 //              case Key.RightAlt:\r
815                 //                      return 0xb8;\r
816 \r
817                 //              case Key.RightShift:\r
818                 //                      return 0x36;\r
819 \r
820                 //              case Key.RightWindowsKey:\r
821                 //                      return 220;\r
822 \r
823                 //              case Key.ScrollLock:\r
824                 //                      return 70;\r
825 \r
826                 //              case Key.Semicolon:\r
827                 //                      return 0x27;\r
828 \r
829                 //              case Key.Slash:\r
830                 //                      return 0x35;\r
831 \r
832                 //              case Key.Sleep:\r
833                 //                      return 0xdf;\r
834 \r
835                 //              case Key.Space:\r
836                 //                      return 0x39;\r
837 \r
838                 //              case Key.Stop:\r
839                 //                      return 0x95;\r
840 \r
841                 //              case Key.PrintScreen:\r
842                 //                      return 0xb7;\r
843 \r
844                 //              case Key.Tab:\r
845                 //                      return 15;\r
846 \r
847                 //              case Key.Underline:\r
848                 //                      return 0x93;\r
849 \r
850                 //              case Key.Unlabeled:\r
851                 //                      return 0x97;\r
852 \r
853                 //              case Key.Up:\r
854                 //                      return 200;\r
855 \r
856                 //              case Key.VolumeDown:\r
857                 //                      return 0xae;\r
858 \r
859                 //              case Key.VolumeUp:\r
860                 //                      return 0xb0;\r
861 \r
862                 //              case Key.Wake:\r
863                 //                      return 0xe3;\r
864 \r
865                 //              case Key.WebBack:\r
866                 //                      return 0xea;\r
867 \r
868                 //              case Key.WebFavorites:\r
869                 //                      return 230;\r
870 \r
871                 //              case Key.WebForward:\r
872                 //                      return 0xe9;\r
873 \r
874                 //              case Key.WebHome:\r
875                 //                      return 0xb2;\r
876 \r
877                 //              case Key.WebRefresh:\r
878                 //                      return 0xe7;\r
879 \r
880                 //              case Key.WebSearch:\r
881                 //                      return 0xe5;\r
882 \r
883                 //              case Key.WebStop:\r
884                 //                      return 0xe8;\r
885 \r
886                 //              case Key.Yen:\r
887                 //                      return 0x7d;\r
888                 //      }\r
889                 //      return 0;\r
890                 //}\r
891                 #endregion\r
892 \r
893                 public static Keys KeyToKeyCode( Key key )\r
894                 {\r
895                         switch ( key )\r
896                         {\r
897                                 case Key.D0:\r
898                                         return Keys.D0;\r
899 \r
900                                 case Key.D1:\r
901                                         return Keys.D1;\r
902 \r
903                                 case Key.D2:\r
904                                         return Keys.D2;\r
905 \r
906                                 case Key.D3:\r
907                                         return Keys.D3;\r
908 \r
909                                 case Key.D4:\r
910                                         return Keys.D4;\r
911 \r
912                                 case Key.D5:\r
913                                         return Keys.D5;\r
914 \r
915                                 case Key.D6:\r
916                                         return Keys.D6;\r
917 \r
918                                 case Key.D7:\r
919                                         return Keys.D7;\r
920 \r
921                                 case Key.D8:\r
922                                         return Keys.D8;\r
923 \r
924                                 case Key.D9:\r
925                                         return Keys.D9;\r
926 \r
927                                 case Key.A:\r
928                                         return Keys.A;\r
929 \r
930                                 case Key.B:\r
931                                         return Keys.B;\r
932 \r
933                                 case Key.C:\r
934                                         return Keys.C;\r
935 \r
936                                 case Key.D:\r
937                                         return Keys.D;\r
938 \r
939                                 case Key.E:\r
940                                         return Keys.E;\r
941 \r
942                                 case Key.F:\r
943                                         return Keys.F;\r
944 \r
945                                 case Key.G:\r
946                                         return Keys.G;\r
947 \r
948                                 case Key.H:\r
949                                         return Keys.H;\r
950 \r
951                                 case Key.I:\r
952                                         return Keys.I;\r
953 \r
954                                 case Key.J:\r
955                                         return Keys.J;\r
956 \r
957                                 case Key.K:\r
958                                         return Keys.K;\r
959 \r
960                                 case Key.L:\r
961                                         return Keys.L;\r
962 \r
963                                 case Key.M:\r
964                                         return Keys.M;\r
965 \r
966                                 case Key.N:\r
967                                         return Keys.N;\r
968 \r
969                                 case Key.O:\r
970                                         return Keys.O;\r
971 \r
972                                 case Key.P:\r
973                                         return Keys.P;\r
974 \r
975                                 case Key.Q:\r
976                                         return Keys.Q;\r
977 \r
978                                 case Key.R:\r
979                                         return Keys.R;\r
980 \r
981                                 case Key.S:\r
982                                         return Keys.S;\r
983 \r
984                                 case Key.T:\r
985                                         return Keys.T;\r
986 \r
987                                 case Key.U:\r
988                                         return Keys.U;\r
989 \r
990                                 case Key.V:\r
991                                         return Keys.V;\r
992 \r
993                                 case Key.W:\r
994                                         return Keys.W;\r
995 \r
996                                 case Key.X:\r
997                                         return Keys.X;\r
998 \r
999                                 case Key.Y:\r
1000                                         return Keys.Y;\r
1001 \r
1002                                 case Key.Z:\r
1003                                         return Keys.Z;\r
1004 \r
1005 //                              case Key.AbntC1:\r
1006 //                                      return Keys.A; //0x73;\r
1007                                         //147\r
1008 //                              case Key.AbntC2:\r
1009 //                                      return Keys.A; //0x7e;\r
1010 \r
1011 //                              case Key.Apostrophe:\r
1012 //                                      return Keys.A;                  ///\r
1013 \r
1014                                 case Key.Applications:\r
1015                                         return Keys.Apps;\r
1016 \r
1017                                 case Key.AT:\r
1018                                         return Keys.Oem3;\r
1019 \r
1020 //                              case Key.AX:\r
1021 //                                      return Keys.A;                  ///\r
1022 \r
1023                                 case Key.Back:\r
1024                                         return Keys.Back;\r
1025 \r
1026                                 case Key.Backslash:\r
1027                                         return Keys.Oem5;\r
1028 \r
1029 //                              case Key.Calculator:\r
1030 //                                      return Keys.A;                  ///\r
1031 \r
1032                                 case Key.Capital:\r
1033                                         return Keys.CapsLock;\r
1034 \r
1035                                 case Key.Colon:\r
1036                                         return Keys.Oem1;\r
1037 \r
1038                                 case Key.Comma:\r
1039                                         return Keys.Oemcomma;\r
1040 \r
1041                                 case Key.Convert:\r
1042                                         return Keys.IMEConvert;\r
1043 \r
1044                                 case Key.Delete:\r
1045                                         return Keys.Delete;\r
1046 \r
1047                                 case Key.Down:\r
1048                                         return Keys.Down;\r
1049 \r
1050                                 case Key.End:\r
1051                                         return Keys.End;\r
1052 \r
1053                                 case Key.Equals:\r
1054                                         return Keys.A;                  ///\r
1055 \r
1056                                 case Key.Escape:\r
1057                                         return Keys.Escape;\r
1058 \r
1059                                 case Key.F1:\r
1060                                         return Keys.F1;\r
1061 \r
1062                                 case Key.F2:\r
1063                                         return Keys.F2;\r
1064 \r
1065                                 case Key.F3:\r
1066                                         return Keys.F3;\r
1067 \r
1068                                 case Key.F4:\r
1069                                         return Keys.F4;\r
1070 \r
1071                                 case Key.F5:\r
1072                                         return Keys.F5;\r
1073 \r
1074                                 case Key.F6:\r
1075                                         return Keys.F6;\r
1076 \r
1077                                 case Key.F7:\r
1078                                         return Keys.F7;\r
1079 \r
1080                                 case Key.F8:\r
1081                                         return Keys.F8;\r
1082 \r
1083                                 case Key.F9:\r
1084                                         return Keys.F9;\r
1085 \r
1086                                 case Key.F10:\r
1087                                         return Keys.F10;\r
1088 \r
1089                                 case Key.F11:\r
1090                                         return Keys.F11;\r
1091 \r
1092                                 case Key.F12:\r
1093                                         return Keys.F12;\r
1094 \r
1095                                 case Key.F13:\r
1096                                         return Keys.F13;\r
1097 \r
1098                                 case Key.F14:\r
1099                                         return Keys.F14;\r
1100 \r
1101                                 case Key.F15:\r
1102                                         return Keys.F15;\r
1103 \r
1104                                 case Key.Grave:\r
1105                                         return Keys.A;                  ///\r
1106 \r
1107                                 case Key.Home:\r
1108                                         return Keys.Home;\r
1109 \r
1110                                 case Key.Insert:\r
1111                                         return Keys.Insert;\r
1112 \r
1113                                 case Key.Kana:\r
1114                                         return Keys.KanaMode;\r
1115 \r
1116                                 case Key.Kanji:\r
1117                                         return Keys.KanjiMode;\r
1118 \r
1119                                 case Key.LeftBracket:\r
1120                                         return Keys.Oem4;\r
1121 \r
1122                                 case Key.LeftControl:\r
1123                                         return Keys.LControlKey;\r
1124 \r
1125                                 case Key.Left:\r
1126                                         return Keys.Left;\r
1127 \r
1128                                 case Key.LeftAlt:\r
1129                                         return Keys.LMenu;\r
1130 \r
1131                                 case Key.LeftShift:\r
1132                                         return Keys.LShiftKey;\r
1133 \r
1134                                 case Key.LeftWindowsKey:\r
1135                                         return Keys.LWin;\r
1136 \r
1137                                 case Key.Mail:\r
1138                                         return Keys.LaunchMail;\r
1139 \r
1140                                 case Key.MediaSelect:\r
1141                                         return Keys.SelectMedia;\r
1142 \r
1143                                 case Key.MediaStop:\r
1144                                         return Keys.MediaStop;\r
1145 \r
1146                                 case Key.Minus:\r
1147                                         return Keys.OemMinus;\r
1148 \r
1149                                 case Key.Mute:\r
1150                                         return Keys.VolumeMute;\r
1151 \r
1152                                 case Key.MyComputer:                    ///\r
1153                                         return Keys.A;\r
1154 \r
1155                                 case Key.NextTrack:\r
1156                                         return Keys.MediaNextTrack;\r
1157 \r
1158                                 case Key.NoConvert:\r
1159                                         return Keys.IMENonconvert;\r
1160 \r
1161                                 case Key.NumberLock:\r
1162                                         return Keys.NumLock;\r
1163 \r
1164                                 case Key.NumberPad0:\r
1165                                         return Keys.NumPad0;\r
1166 \r
1167                                 case Key.NumberPad1:\r
1168                                         return Keys.NumPad1;\r
1169 \r
1170                                 case Key.NumberPad2:\r
1171                                         return Keys.NumPad2;\r
1172 \r
1173                                 case Key.NumberPad3:\r
1174                                         return Keys.NumPad3;\r
1175 \r
1176                                 case Key.NumberPad4:\r
1177                                         return Keys.NumPad4;\r
1178 \r
1179                                 case Key.NumberPad5:\r
1180                                         return Keys.NumPad5;\r
1181 \r
1182                                 case Key.NumberPad6:\r
1183                                         return Keys.NumPad6;\r
1184 \r
1185                                 case Key.NumberPad7:\r
1186                                         return Keys.NumPad7;\r
1187 \r
1188                                 case Key.NumberPad8:\r
1189                                         return Keys.NumPad8;\r
1190 \r
1191                                 case Key.NumberPad9:\r
1192                                         return Keys.NumPad9;\r
1193 \r
1194                                 case Key.NumberPadComma:\r
1195                                         return Keys.Separator;\r
1196 \r
1197                                 case Key.NumberPadEnter:\r
1198                                         return Keys.A;                          //\r
1199 \r
1200                                 case Key.NumberPadEquals:\r
1201                                         return Keys.A;              //\r
1202 \r
1203                                 case Key.Subtract:\r
1204                                         return Keys.Subtract;\r
1205 \r
1206                                 case Key.Decimal:\r
1207                                         return Keys.Decimal;\r
1208 \r
1209                                 case Key.Add:\r
1210                                         return Keys.Add;\r
1211 \r
1212                                 case Key.Divide:\r
1213                                         return Keys.Divide;\r
1214 \r
1215                                 case Key.Multiply:\r
1216                                         return Keys.Multiply;           //\r
1217 \r
1218                                 case Key.Oem102:\r
1219                                         return Keys.Oem102;\r
1220 \r
1221                                 case Key.PageDown:\r
1222                                         return Keys.PageDown;\r
1223 \r
1224                                 case Key.PageUp:\r
1225                                         return Keys.PageUp;\r
1226 \r
1227                                 case Key.Pause:\r
1228                                         return Keys.Pause;\r
1229 \r
1230                                 case Key.Period:\r
1231                                         return Keys.OemPeriod;\r
1232 \r
1233                                 case Key.PlayPause:\r
1234                                         return Keys.MediaPlayPause;\r
1235 \r
1236                                 case Key.Power:\r
1237                                         return Keys.A;                          ///\r
1238 \r
1239                                 case Key.PreviousTrack:\r
1240                                         return Keys.MediaPreviousTrack;\r
1241 \r
1242                                 case Key.RightBracket:\r
1243                                         return Keys.Oem6;\r
1244 \r
1245                                 case Key.RightControl:\r
1246                                         return Keys.RControlKey;\r
1247 \r
1248                                 case Key.Return:\r
1249                                         return Keys.Return;\r
1250 \r
1251                                 case Key.Right:\r
1252                                         return Keys.Right;\r
1253 \r
1254                                 case Key.RightAlt:\r
1255                                         return Keys.RMenu;\r
1256 \r
1257                                 case Key.RightShift:\r
1258                                         return Keys.A;\r
1259 \r
1260                                 case Key.RightWindowsKey:\r
1261                                         return Keys.RWin;\r
1262 \r
1263                                 case Key.ScrollLock:\r
1264                                         return Keys.Scroll;\r
1265 \r
1266                                 case Key.Semicolon:\r
1267                                         return Keys.Oemplus;            ///??\r
1268 \r
1269                                 case Key.Slash:\r
1270                                         return Keys.Oem2;\r
1271 \r
1272                                 case Key.Sleep:\r
1273                                         return Keys.Sleep;\r
1274 \r
1275                                 case Key.Space:\r
1276                                         return Keys.Space;\r
1277 \r
1278                                 case Key.Stop:\r
1279                                         return Keys.MediaStop;\r
1280 \r
1281                                 case Key.PrintScreen:\r
1282                                         return Keys.PrintScreen;\r
1283 \r
1284                                 case Key.Tab:\r
1285                                         return Keys.Tab;\r
1286 \r
1287                                 case Key.Underline:\r
1288                                         return Keys.Oem102;\r
1289 \r
1290 //                              case Key.Unlabeled:                             ///\r
1291 //                                      return Keys.A;\r
1292 \r
1293                                 case Key.Up:\r
1294                                         return Keys.Up;\r
1295 \r
1296                                 case Key.VolumeDown:\r
1297                                         return Keys.VolumeDown;\r
1298 \r
1299                                 case Key.VolumeUp:\r
1300                                         return Keys.VolumeUp;\r
1301 \r
1302                                 case Key.Wake:\r
1303                                         return Keys.A;                          ///\r
1304 \r
1305                                 case Key.WebBack:\r
1306                                         return Keys.BrowserBack;\r
1307 \r
1308                                 case Key.WebFavorites:\r
1309                                         return Keys.BrowserFavorites;\r
1310 \r
1311                                 case Key.WebForward:\r
1312                                         return Keys.BrowserForward;\r
1313 \r
1314                                 case Key.WebHome:\r
1315                                         return Keys.BrowserHome;\r
1316 \r
1317                                 case Key.WebRefresh:\r
1318                                         return Keys.BrowserRefresh;\r
1319 \r
1320                                 case Key.WebSearch:\r
1321                                         return Keys.BrowserSearch;\r
1322 \r
1323                                 case Key.WebStop:\r
1324                                         return Keys.BrowserStop;\r
1325 \r
1326                                 case Key.Yen:\r
1327                                         return Keys.OemBackslash;\r
1328                         }\r
1329                         return 0;\r
1330                 }\r
1331         }\r
1332 }\r