• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

luttje / Key2Joy / 6517266969

14 Oct 2023 11:05AM UTC coverage: 12.469% (+0.2%) from 12.308%
6517266969

push

github

web-flow
Implementing plugins for better separation (#39)

* Start implementing plugins for better separation
* massive refactor in attempt to split appdomains for plugins
* (breaks old mapping profiles)
* Fix error when switching from mouse button trigger to keyboard trigger and clicking in the combobox where the mouse button capture textbox is.
* Simplify code by removing legacy
* SImplify grouping actions
* Fix profile and add helpful opposite mapping generator tool
* Change solution hierarchy
* Restrict AppDomain plugins went from Zone.MyComputer -> .Internet
* create keypair in ci
* Install the .NET framework tools
* Run command in workflow
* Plugin permissions. Plugins disabled by default
* update readme (icon is no longer used)
* Plugin action runs in seperated process
* Remove unused dependencies.
* Fix action name display for mapping
* Fix Lua plugin script calls (NOTE: laggy when using MessageBox)
* convert project to sdk style
* Add editorconfig and start cleaning up
* Fix documentation. Update namespaces to match files (breaks profiles)
* Include all projects in tests, disable building docs on debug
* Add messagebox script action
* Add tests for pluginhost
* Remove administrator from window title test
* add some icons to ui
* Add enabling/disabling plugins
* Close plugins when Key2Joy shuts down
* Fix appcommand failing
* Fix plugin permission form crashing. Fix plugin load exception not showing warning
* Handle plugin host closing better when app has crashed
* Seperate host and client logic in remote event subscriber
* Ensure the PluginHost shuts down if the app crashes
* Better error output for plugins
* Fix cmd interop not working, add some tests
* also generate docs on plugins
* Fix build order with docs
* Fix enum script parameters and ensure actions share environment scopes
* Fix _wpftmp folders being created dotnet/wpf#2930
* Fix sequence action. Add disabled trigger/action for unloaded plugins on start... (continued)

180 of 1703 branches covered (0.0%)

Branch coverage included in aggregate %.

6419 of 6419 new or added lines in 207 files covered. (100.0%)

1035 of 8041 relevant lines covered (12.87%)

8445.05 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/Core/Key2Joy.Core/LowLevelInput/SimulatedKeyboard.cs
1
using System;
2
using System.Runtime.InteropServices;
3

4
namespace Key2Joy.LowLevelInput;
5

6
// Source: https://stackoverflow.com/a/48967155
7
public static class SimulatedKeyboard
8
{
9
    public static void PressKey(KeyboardKey scanCode) => Send(scanCode);
×
10

11
    public static void ReleaseKey(KeyboardKey scanCode) => Send(scanCode, KEYEVENTF.KEYUP);
×
12

13
    public static void Send(KeyboardKey scanCode, KEYEVENTF? rawPressState = null)
14
    {
×
15
        var Inputs = new Simulator.INPUT[1];
×
16
        Simulator.INPUT Input = new()
×
17
        {
×
18
            type = 1 // 1 = Keyboard Input
×
19
        };
×
20
        Input.U.ki.wScan = scanCode;
×
21

22
        if (rawPressState.HasValue)
×
23
        {
×
24
            Input.U.ki.dwFlags = rawPressState.Value | KEYEVENTF.SCANCODE;
×
25
        }
×
26
        else
27
        {
×
28
            Input.U.ki.dwFlags = KEYEVENTF.SCANCODE;
×
29
        }
×
30

31
        Inputs[0] = Input;
×
32

33
        Simulator.SendInput(1, Inputs, Simulator.INPUT.Size);
×
34
    }
×
35

36
    [StructLayout(LayoutKind.Sequential)]
37
    public struct KEYBDINPUT
38
    {
39
        public VirtualKeyShort wVk;
40
        public KeyboardKey wScan;
41
        public KEYEVENTF dwFlags;
42
        public int time;
43
        public UIntPtr dwExtraInfo;
44
    }
45

46
    [Flags]
47
    public enum KEYEVENTF : uint
48
    {
49
        EXTENDEDKEY = 0x0001,
50
        KEYUP = 0x0002,
51
        SCANCODE = 0x0008,
52
        UNICODE = 0x0004
53
    }
54

55
    public enum VirtualKeyShort : short
56
    {
57
        ///<summary>
58
        ///Left mouse button
59
        ///</summary>
60
        LBUTTON = 0x01,
61
        ///<summary>
62
        ///Right mouse button
63
        ///</summary>
64
        RBUTTON = 0x02,
65
        ///<summary>
66
        ///Control-break processing
67
        ///</summary>
68
        CANCEL = 0x03,
69
        ///<summary>
70
        ///Middle mouse button (three-button mouse)
71
        ///</summary>
72
        MBUTTON = 0x04,
73
        ///<summary>
74
        ///Windows 2000/XP: X1 mouse button
75
        ///</summary>
76
        XBUTTON1 = 0x05,
77
        ///<summary>
78
        ///Windows 2000/XP: X2 mouse button
79
        ///</summary>
80
        XBUTTON2 = 0x06,
81
        ///<summary>
82
        ///BACKSPACE key
83
        ///</summary>
84
        BACK = 0x08,
85
        ///<summary>
86
        ///TAB key
87
        ///</summary>
88
        TAB = 0x09,
89
        ///<summary>
90
        ///CLEAR key
91
        ///</summary>
92
        CLEAR = 0x0C,
93
        ///<summary>
94
        ///ENTER key
95
        ///</summary>
96
        RETURN = 0x0D,
97
        ///<summary>
98
        ///SHIFT key
99
        ///</summary>
100
        SHIFT = 0x10,
101
        ///<summary>
102
        ///CTRL key
103
        ///</summary>
104
        CONTROL = 0x11,
105
        ///<summary>
106
        ///ALT key
107
        ///</summary>
108
        MENU = 0x12,
109
        ///<summary>
110
        ///PAUSE key
111
        ///</summary>
112
        PAUSE = 0x13,
113
        ///<summary>
114
        ///CAPS LOCK key
115
        ///</summary>
116
        CAPITAL = 0x14,
117
        ///<summary>
118
        ///Input Method Editor (IME) Kana mode
119
        ///</summary>
120
        KANA = 0x15,
121
        ///<summary>
122
        ///IME Hangul mode
123
        ///</summary>
124
        HANGUL = 0x15,
125
        ///<summary>
126
        ///IME Junja mode
127
        ///</summary>
128
        JUNJA = 0x17,
129
        ///<summary>
130
        ///IME final mode
131
        ///</summary>
132
        FINAL = 0x18,
133
        ///<summary>
134
        ///IME Hanja mode
135
        ///</summary>
136
        HANJA = 0x19,
137
        ///<summary>
138
        ///IME Kanji mode
139
        ///</summary>
140
        KANJI = 0x19,
141
        ///<summary>
142
        ///ESC key
143
        ///</summary>
144
        ESCAPE = 0x1B,
145
        ///<summary>
146
        ///IME convert
147
        ///</summary>
148
        CONVERT = 0x1C,
149
        ///<summary>
150
        ///IME nonconvert
151
        ///</summary>
152
        NONCONVERT = 0x1D,
153
        ///<summary>
154
        ///IME accept
155
        ///</summary>
156
        ACCEPT = 0x1E,
157
        ///<summary>
158
        ///IME mode change request
159
        ///</summary>
160
        MODECHANGE = 0x1F,
161
        ///<summary>
162
        ///SPACEBAR
163
        ///</summary>
164
        SPACE = 0x20,
165
        ///<summary>
166
        ///PAGE UP key
167
        ///</summary>
168
        PRIOR = 0x21,
169
        ///<summary>
170
        ///PAGE DOWN key
171
        ///</summary>
172
        NEXT = 0x22,
173
        ///<summary>
174
        ///END key
175
        ///</summary>
176
        END = 0x23,
177
        ///<summary>
178
        ///HOME key
179
        ///</summary>
180
        HOME = 0x24,
181
        ///<summary>
182
        ///LEFT ARROW key
183
        ///</summary>
184
        LEFT = 0x25,
185
        ///<summary>
186
        ///UP ARROW key
187
        ///</summary>
188
        UP = 0x26,
189
        ///<summary>
190
        ///RIGHT ARROW key
191
        ///</summary>
192
        RIGHT = 0x27,
193
        ///<summary>
194
        ///DOWN ARROW key
195
        ///</summary>
196
        DOWN = 0x28,
197
        ///<summary>
198
        ///SELECT key
199
        ///</summary>
200
        SELECT = 0x29,
201
        ///<summary>
202
        ///PRINT key
203
        ///</summary>
204
        PRINT = 0x2A,
205
        ///<summary>
206
        ///EXECUTE key
207
        ///</summary>
208
        EXECUTE = 0x2B,
209
        ///<summary>
210
        ///PRINT SCREEN key
211
        ///</summary>
212
        SNAPSHOT = 0x2C,
213
        ///<summary>
214
        ///INS key
215
        ///</summary>
216
        INSERT = 0x2D,
217
        ///<summary>
218
        ///DEL key
219
        ///</summary>
220
        DELETE = 0x2E,
221
        ///<summary>
222
        ///HELP key
223
        ///</summary>
224
        HELP = 0x2F,
225
        ///<summary>
226
        ///0 key
227
        ///</summary>
228
        KEY_0 = 0x30,
229
        ///<summary>
230
        ///1 key
231
        ///</summary>
232
        KEY_1 = 0x31,
233
        ///<summary>
234
        ///2 key
235
        ///</summary>
236
        KEY_2 = 0x32,
237
        ///<summary>
238
        ///3 key
239
        ///</summary>
240
        KEY_3 = 0x33,
241
        ///<summary>
242
        ///4 key
243
        ///</summary>
244
        KEY_4 = 0x34,
245
        ///<summary>
246
        ///5 key
247
        ///</summary>
248
        KEY_5 = 0x35,
249
        ///<summary>
250
        ///6 key
251
        ///</summary>
252
        KEY_6 = 0x36,
253
        ///<summary>
254
        ///7 key
255
        ///</summary>
256
        KEY_7 = 0x37,
257
        ///<summary>
258
        ///8 key
259
        ///</summary>
260
        KEY_8 = 0x38,
261
        ///<summary>
262
        ///9 key
263
        ///</summary>
264
        KEY_9 = 0x39,
265
        ///<summary>
266
        ///A key
267
        ///</summary>
268
        KEY_A = 0x41,
269
        ///<summary>
270
        ///B key
271
        ///</summary>
272
        KEY_B = 0x42,
273
        ///<summary>
274
        ///C key
275
        ///</summary>
276
        KEY_C = 0x43,
277
        ///<summary>
278
        ///D key
279
        ///</summary>
280
        KEY_D = 0x44,
281
        ///<summary>
282
        ///E key
283
        ///</summary>
284
        KEY_E = 0x45,
285
        ///<summary>
286
        ///F key
287
        ///</summary>
288
        KEY_F = 0x46,
289
        ///<summary>
290
        ///G key
291
        ///</summary>
292
        KEY_G = 0x47,
293
        ///<summary>
294
        ///H key
295
        ///</summary>
296
        KEY_H = 0x48,
297
        ///<summary>
298
        ///I key
299
        ///</summary>
300
        KEY_I = 0x49,
301
        ///<summary>
302
        ///J key
303
        ///</summary>
304
        KEY_J = 0x4A,
305
        ///<summary>
306
        ///K key
307
        ///</summary>
308
        KEY_K = 0x4B,
309
        ///<summary>
310
        ///L key
311
        ///</summary>
312
        KEY_L = 0x4C,
313
        ///<summary>
314
        ///M key
315
        ///</summary>
316
        KEY_M = 0x4D,
317
        ///<summary>
318
        ///N key
319
        ///</summary>
320
        KEY_N = 0x4E,
321
        ///<summary>
322
        ///O key
323
        ///</summary>
324
        KEY_O = 0x4F,
325
        ///<summary>
326
        ///P key
327
        ///</summary>
328
        KEY_P = 0x50,
329
        ///<summary>
330
        ///Q key
331
        ///</summary>
332
        KEY_Q = 0x51,
333
        ///<summary>
334
        ///R key
335
        ///</summary>
336
        KEY_R = 0x52,
337
        ///<summary>
338
        ///S key
339
        ///</summary>
340
        KEY_S = 0x53,
341
        ///<summary>
342
        ///T key
343
        ///</summary>
344
        KEY_T = 0x54,
345
        ///<summary>
346
        ///U key
347
        ///</summary>
348
        KEY_U = 0x55,
349
        ///<summary>
350
        ///V key
351
        ///</summary>
352
        KEY_V = 0x56,
353
        ///<summary>
354
        ///W key
355
        ///</summary>
356
        KEY_W = 0x57,
357
        ///<summary>
358
        ///X key
359
        ///</summary>
360
        KEY_X = 0x58,
361
        ///<summary>
362
        ///Y key
363
        ///</summary>
364
        KEY_Y = 0x59,
365
        ///<summary>
366
        ///Z key
367
        ///</summary>
368
        KEY_Z = 0x5A,
369
        ///<summary>
370
        ///Left Windows key (Microsoft Natural keyboard) 
371
        ///</summary>
372
        LWIN = 0x5B,
373
        ///<summary>
374
        ///Right Windows key (Natural keyboard)
375
        ///</summary>
376
        RWIN = 0x5C,
377
        ///<summary>
378
        ///Applications key (Natural keyboard)
379
        ///</summary>
380
        APPS = 0x5D,
381
        ///<summary>
382
        ///Computer Sleep key
383
        ///</summary>
384
        SLEEP = 0x5F,
385
        ///<summary>
386
        ///Numeric keypad 0 key
387
        ///</summary>
388
        NUMPAD0 = 0x60,
389
        ///<summary>
390
        ///Numeric keypad 1 key
391
        ///</summary>
392
        NUMPAD1 = 0x61,
393
        ///<summary>
394
        ///Numeric keypad 2 key
395
        ///</summary>
396
        NUMPAD2 = 0x62,
397
        ///<summary>
398
        ///Numeric keypad 3 key
399
        ///</summary>
400
        NUMPAD3 = 0x63,
401
        ///<summary>
402
        ///Numeric keypad 4 key
403
        ///</summary>
404
        NUMPAD4 = 0x64,
405
        ///<summary>
406
        ///Numeric keypad 5 key
407
        ///</summary>
408
        NUMPAD5 = 0x65,
409
        ///<summary>
410
        ///Numeric keypad 6 key
411
        ///</summary>
412
        NUMPAD6 = 0x66,
413
        ///<summary>
414
        ///Numeric keypad 7 key
415
        ///</summary>
416
        NUMPAD7 = 0x67,
417
        ///<summary>
418
        ///Numeric keypad 8 key
419
        ///</summary>
420
        NUMPAD8 = 0x68,
421
        ///<summary>
422
        ///Numeric keypad 9 key
423
        ///</summary>
424
        NUMPAD9 = 0x69,
425
        ///<summary>
426
        ///Multiply key
427
        ///</summary>
428
        MULTIPLY = 0x6A,
429
        ///<summary>
430
        ///Add key
431
        ///</summary>
432
        ADD = 0x6B,
433
        ///<summary>
434
        ///Separator key
435
        ///</summary>
436
        SEPARATOR = 0x6C,
437
        ///<summary>
438
        ///Subtract key
439
        ///</summary>
440
        SUBTRACT = 0x6D,
441
        ///<summary>
442
        ///Decimal key
443
        ///</summary>
444
        DECIMAL = 0x6E,
445
        ///<summary>
446
        ///Divide key
447
        ///</summary>
448
        DIVIDE = 0x6F,
449
        ///<summary>
450
        ///F1 key
451
        ///</summary>
452
        F1 = 0x70,
453
        ///<summary>
454
        ///F2 key
455
        ///</summary>
456
        F2 = 0x71,
457
        ///<summary>
458
        ///F3 key
459
        ///</summary>
460
        F3 = 0x72,
461
        ///<summary>
462
        ///F4 key
463
        ///</summary>
464
        F4 = 0x73,
465
        ///<summary>
466
        ///F5 key
467
        ///</summary>
468
        F5 = 0x74,
469
        ///<summary>
470
        ///F6 key
471
        ///</summary>
472
        F6 = 0x75,
473
        ///<summary>
474
        ///F7 key
475
        ///</summary>
476
        F7 = 0x76,
477
        ///<summary>
478
        ///F8 key
479
        ///</summary>
480
        F8 = 0x77,
481
        ///<summary>
482
        ///F9 key
483
        ///</summary>
484
        F9 = 0x78,
485
        ///<summary>
486
        ///F10 key
487
        ///</summary>
488
        F10 = 0x79,
489
        ///<summary>
490
        ///F11 key
491
        ///</summary>
492
        F11 = 0x7A,
493
        ///<summary>
494
        ///F12 key
495
        ///</summary>
496
        F12 = 0x7B,
497
        ///<summary>
498
        ///F13 key
499
        ///</summary>
500
        F13 = 0x7C,
501
        ///<summary>
502
        ///F14 key
503
        ///</summary>
504
        F14 = 0x7D,
505
        ///<summary>
506
        ///F15 key
507
        ///</summary>
508
        F15 = 0x7E,
509
        ///<summary>
510
        ///F16 key
511
        ///</summary>
512
        F16 = 0x7F,
513
        ///<summary>
514
        ///F17 key  
515
        ///</summary>
516
        F17 = 0x80,
517
        ///<summary>
518
        ///F18 key  
519
        ///</summary>
520
        F18 = 0x81,
521
        ///<summary>
522
        ///F19 key  
523
        ///</summary>
524
        F19 = 0x82,
525
        ///<summary>
526
        ///F20 key  
527
        ///</summary>
528
        F20 = 0x83,
529
        ///<summary>
530
        ///F21 key  
531
        ///</summary>
532
        F21 = 0x84,
533
        ///<summary>
534
        ///F22 key, (PPC only) Key used to lock device.
535
        ///</summary>
536
        F22 = 0x85,
537
        ///<summary>
538
        ///F23 key  
539
        ///</summary>
540
        F23 = 0x86,
541
        ///<summary>
542
        ///F24 key  
543
        ///</summary>
544
        F24 = 0x87,
545
        ///<summary>
546
        ///NUM LOCK key
547
        ///</summary>
548
        NUMLOCK = 0x90,
549
        ///<summary>
550
        ///SCROLL LOCK key
551
        ///</summary>
552
        SCROLL = 0x91,
553
        ///<summary>
554
        ///Left SHIFT key
555
        ///</summary>
556
        LSHIFT = 0xA0,
557
        ///<summary>
558
        ///Right SHIFT key
559
        ///</summary>
560
        RSHIFT = 0xA1,
561
        ///<summary>
562
        ///Left CONTROL key
563
        ///</summary>
564
        LCONTROL = 0xA2,
565
        ///<summary>
566
        ///Right CONTROL key
567
        ///</summary>
568
        RCONTROL = 0xA3,
569
        ///<summary>
570
        ///Left MENU key
571
        ///</summary>
572
        LMENU = 0xA4,
573
        ///<summary>
574
        ///Right MENU key
575
        ///</summary>
576
        RMENU = 0xA5,
577
        ///<summary>
578
        ///Windows 2000/XP: Browser Back key
579
        ///</summary>
580
        BROWSER_BACK = 0xA6,
581
        ///<summary>
582
        ///Windows 2000/XP: Browser Forward key
583
        ///</summary>
584
        BROWSER_FORWARD = 0xA7,
585
        ///<summary>
586
        ///Windows 2000/XP: Browser Refresh key
587
        ///</summary>
588
        BROWSER_REFRESH = 0xA8,
589
        ///<summary>
590
        ///Windows 2000/XP: Browser Stop key
591
        ///</summary>
592
        BROWSER_STOP = 0xA9,
593
        ///<summary>
594
        ///Windows 2000/XP: Browser Search key 
595
        ///</summary>
596
        BROWSER_SEARCH = 0xAA,
597
        ///<summary>
598
        ///Windows 2000/XP: Browser Favorites key
599
        ///</summary>
600
        BROWSER_FAVORITES = 0xAB,
601
        ///<summary>
602
        ///Windows 2000/XP: Browser Start and Home key
603
        ///</summary>
604
        BROWSER_HOME = 0xAC,
605
        ///<summary>
606
        ///Windows 2000/XP: Volume Mute key
607
        ///</summary>
608
        VOLUME_MUTE = 0xAD,
609
        ///<summary>
610
        ///Windows 2000/XP: Volume Down key
611
        ///</summary>
612
        VOLUME_DOWN = 0xAE,
613
        ///<summary>
614
        ///Windows 2000/XP: Volume Up key
615
        ///</summary>
616
        VOLUME_UP = 0xAF,
617
        ///<summary>
618
        ///Windows 2000/XP: Next Track key
619
        ///</summary>
620
        MEDIA_NEXT_TRACK = 0xB0,
621
        ///<summary>
622
        ///Windows 2000/XP: Previous Track key
623
        ///</summary>
624
        MEDIA_PREV_TRACK = 0xB1,
625
        ///<summary>
626
        ///Windows 2000/XP: Stop Media key
627
        ///</summary>
628
        MEDIA_STOP = 0xB2,
629
        ///<summary>
630
        ///Windows 2000/XP: Play/Pause Media key
631
        ///</summary>
632
        MEDIA_PLAY_PAUSE = 0xB3,
633
        ///<summary>
634
        ///Windows 2000/XP: Start Mail key
635
        ///</summary>
636
        LAUNCH_MAIL = 0xB4,
637
        ///<summary>
638
        ///Windows 2000/XP: Select Media key
639
        ///</summary>
640
        LAUNCH_MEDIA_SELECT = 0xB5,
641
        ///<summary>
642
        ///Windows 2000/XP: Start Application 1 key
643
        ///</summary>
644
        LAUNCH_APP1 = 0xB6,
645
        ///<summary>
646
        ///Windows 2000/XP: Start Application 2 key
647
        ///</summary>
648
        LAUNCH_APP2 = 0xB7,
649
        ///<summary>
650
        ///Used for miscellaneous characters; it can vary by keyboard.
651
        ///</summary>
652
        OEM_1 = 0xBA,
653
        ///<summary>
654
        ///Windows 2000/XP: For any country/region, the '+' key
655
        ///</summary>
656
        OEM_PLUS = 0xBB,
657
        ///<summary>
658
        ///Windows 2000/XP: For any country/region, the ',' key
659
        ///</summary>
660
        OEM_COMMA = 0xBC,
661
        ///<summary>
662
        ///Windows 2000/XP: For any country/region, the '-' key
663
        ///</summary>
664
        OEM_MINUS = 0xBD,
665
        ///<summary>
666
        ///Windows 2000/XP: For any country/region, the '.' key
667
        ///</summary>
668
        OEM_PERIOD = 0xBE,
669
        ///<summary>
670
        ///Used for miscellaneous characters; it can vary by keyboard.
671
        ///</summary>
672
        OEM_2 = 0xBF,
673
        ///<summary>
674
        ///Used for miscellaneous characters; it can vary by keyboard. 
675
        ///</summary>
676
        OEM_3 = 0xC0,
677
        ///<summary>
678
        ///Used for miscellaneous characters; it can vary by keyboard. 
679
        ///</summary>
680
        OEM_4 = 0xDB,
681
        ///<summary>
682
        ///Used for miscellaneous characters; it can vary by keyboard. 
683
        ///</summary>
684
        OEM_5 = 0xDC,
685
        ///<summary>
686
        ///Used for miscellaneous characters; it can vary by keyboard. 
687
        ///</summary>
688
        OEM_6 = 0xDD,
689
        ///<summary>
690
        ///Used for miscellaneous characters; it can vary by keyboard. 
691
        ///</summary>
692
        OEM_7 = 0xDE,
693
        ///<summary>
694
        ///Used for miscellaneous characters; it can vary by keyboard.
695
        ///</summary>
696
        OEM_8 = 0xDF,
697
        ///<summary>
698
        ///Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard
699
        ///</summary>
700
        OEM_102 = 0xE2,
701
        ///<summary>
702
        ///Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key
703
        ///</summary>
704
        PROCESSKEY = 0xE5,
705
        ///<summary>
706
        ///Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes.
707
        ///The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information,
708
        ///see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP
709
        ///</summary>
710
        PACKET = 0xE7,
711
        ///<summary>
712
        ///Attn key
713
        ///</summary>
714
        ATTN = 0xF6,
715
        ///<summary>
716
        ///CrSel key
717
        ///</summary>
718
        CRSEL = 0xF7,
719
        ///<summary>
720
        ///ExSel key
721
        ///</summary>
722
        EXSEL = 0xF8,
723
        ///<summary>
724
        ///Erase EOF key
725
        ///</summary>
726
        EREOF = 0xF9,
727
        ///<summary>
728
        ///Play key
729
        ///</summary>
730
        PLAY = 0xFA,
731
        ///<summary>
732
        ///Zoom key
733
        ///</summary>
734
        ZOOM = 0xFB,
735
        ///<summary>
736
        ///Reserved 
737
        ///</summary>
738
        NONAME = 0xFC,
739
        ///<summary>
740
        ///PA1 key
741
        ///</summary>
742
        PA1 = 0xFD,
743
        ///<summary>
744
        ///Clear key
745
        ///</summary>
746
        OEM_CLEAR = 0xFE
747
    }
748
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc