@@ -3474,3 +3474,213 @@ const (
3474
3474
KLF_NOTELLSHELL = 0x00000080
3475
3475
KLF_SETFORPROCESS = 0x00000100
3476
3476
)
3477
+
3478
+ // Virtual Key codes
3479
+ // https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
3480
+ const (
3481
+ VK_LBUTTON = 0x01
3482
+ VK_RBUTTON = 0x02
3483
+ VK_CANCEL = 0x03
3484
+ VK_MBUTTON = 0x04
3485
+ VK_XBUTTON1 = 0x05
3486
+ VK_XBUTTON2 = 0x06
3487
+ VK_BACK = 0x08
3488
+ VK_TAB = 0x09
3489
+ VK_CLEAR = 0x0C
3490
+ VK_RETURN = 0x0D
3491
+ VK_SHIFT = 0x10
3492
+ VK_CONTROL = 0x11
3493
+ VK_MENU = 0x12
3494
+ VK_PAUSE = 0x13
3495
+ VK_CAPITAL = 0x14
3496
+ VK_KANA = 0x15
3497
+ VK_HANGEUL = 0x15
3498
+ VK_HANGUL = 0x15
3499
+ VK_IME_ON = 0x16
3500
+ VK_JUNJA = 0x17
3501
+ VK_FINAL = 0x18
3502
+ VK_HANJA = 0x19
3503
+ VK_KANJI = 0x19
3504
+ VK_IME_OFF = 0x1A
3505
+ VK_ESCAPE = 0x1B
3506
+ VK_CONVERT = 0x1C
3507
+ VK_NONCONVERT = 0x1D
3508
+ VK_ACCEPT = 0x1E
3509
+ VK_MODECHANGE = 0x1F
3510
+ VK_SPACE = 0x20
3511
+ VK_PRIOR = 0x21
3512
+ VK_NEXT = 0x22
3513
+ VK_END = 0x23
3514
+ VK_HOME = 0x24
3515
+ VK_LEFT = 0x25
3516
+ VK_UP = 0x26
3517
+ VK_RIGHT = 0x27
3518
+ VK_DOWN = 0x28
3519
+ VK_SELECT = 0x29
3520
+ VK_PRINT = 0x2A
3521
+ VK_EXECUTE = 0x2B
3522
+ VK_SNAPSHOT = 0x2C
3523
+ VK_INSERT = 0x2D
3524
+ VK_DELETE = 0x2E
3525
+ VK_HELP = 0x2F
3526
+ VK_LWIN = 0x5B
3527
+ VK_RWIN = 0x5C
3528
+ VK_APPS = 0x5D
3529
+ VK_SLEEP = 0x5F
3530
+ VK_NUMPAD0 = 0x60
3531
+ VK_NUMPAD1 = 0x61
3532
+ VK_NUMPAD2 = 0x62
3533
+ VK_NUMPAD3 = 0x63
3534
+ VK_NUMPAD4 = 0x64
3535
+ VK_NUMPAD5 = 0x65
3536
+ VK_NUMPAD6 = 0x66
3537
+ VK_NUMPAD7 = 0x67
3538
+ VK_NUMPAD8 = 0x68
3539
+ VK_NUMPAD9 = 0x69
3540
+ VK_MULTIPLY = 0x6A
3541
+ VK_ADD = 0x6B
3542
+ VK_SEPARATOR = 0x6C
3543
+ VK_SUBTRACT = 0x6D
3544
+ VK_DECIMAL = 0x6E
3545
+ VK_DIVIDE = 0x6F
3546
+ VK_F1 = 0x70
3547
+ VK_F2 = 0x71
3548
+ VK_F3 = 0x72
3549
+ VK_F4 = 0x73
3550
+ VK_F5 = 0x74
3551
+ VK_F6 = 0x75
3552
+ VK_F7 = 0x76
3553
+ VK_F8 = 0x77
3554
+ VK_F9 = 0x78
3555
+ VK_F10 = 0x79
3556
+ VK_F11 = 0x7A
3557
+ VK_F12 = 0x7B
3558
+ VK_F13 = 0x7C
3559
+ VK_F14 = 0x7D
3560
+ VK_F15 = 0x7E
3561
+ VK_F16 = 0x7F
3562
+ VK_F17 = 0x80
3563
+ VK_F18 = 0x81
3564
+ VK_F19 = 0x82
3565
+ VK_F20 = 0x83
3566
+ VK_F21 = 0x84
3567
+ VK_F22 = 0x85
3568
+ VK_F23 = 0x86
3569
+ VK_F24 = 0x87
3570
+ VK_NUMLOCK = 0x90
3571
+ VK_SCROLL = 0x91
3572
+ VK_OEM_NEC_EQUAL = 0x92
3573
+ VK_OEM_FJ_JISHO = 0x92
3574
+ VK_OEM_FJ_MASSHOU = 0x93
3575
+ VK_OEM_FJ_TOUROKU = 0x94
3576
+ VK_OEM_FJ_LOYA = 0x95
3577
+ VK_OEM_FJ_ROYA = 0x96
3578
+ VK_LSHIFT = 0xA0
3579
+ VK_RSHIFT = 0xA1
3580
+ VK_LCONTROL = 0xA2
3581
+ VK_RCONTROL = 0xA3
3582
+ VK_LMENU = 0xA4
3583
+ VK_RMENU = 0xA5
3584
+ VK_BROWSER_BACK = 0xA6
3585
+ VK_BROWSER_FORWARD = 0xA7
3586
+ VK_BROWSER_REFRESH = 0xA8
3587
+ VK_BROWSER_STOP = 0xA9
3588
+ VK_BROWSER_SEARCH = 0xAA
3589
+ VK_BROWSER_FAVORITES = 0xAB
3590
+ VK_BROWSER_HOME = 0xAC
3591
+ VK_VOLUME_MUTE = 0xAD
3592
+ VK_VOLUME_DOWN = 0xAE
3593
+ VK_VOLUME_UP = 0xAF
3594
+ VK_MEDIA_NEXT_TRACK = 0xB0
3595
+ VK_MEDIA_PREV_TRACK = 0xB1
3596
+ VK_MEDIA_STOP = 0xB2
3597
+ VK_MEDIA_PLAY_PAUSE = 0xB3
3598
+ VK_LAUNCH_MAIL = 0xB4
3599
+ VK_LAUNCH_MEDIA_SELECT = 0xB5
3600
+ VK_LAUNCH_APP1 = 0xB6
3601
+ VK_LAUNCH_APP2 = 0xB7
3602
+ VK_OEM_1 = 0xBA
3603
+ VK_OEM_PLUS = 0xBB
3604
+ VK_OEM_COMMA = 0xBC
3605
+ VK_OEM_MINUS = 0xBD
3606
+ VK_OEM_PERIOD = 0xBE
3607
+ VK_OEM_2 = 0xBF
3608
+ VK_OEM_3 = 0xC0
3609
+ VK_OEM_4 = 0xDB
3610
+ VK_OEM_5 = 0xDC
3611
+ VK_OEM_6 = 0xDD
3612
+ VK_OEM_7 = 0xDE
3613
+ VK_OEM_8 = 0xDF
3614
+ VK_OEM_AX = 0xE1
3615
+ VK_OEM_102 = 0xE2
3616
+ VK_ICO_HELP = 0xE3
3617
+ VK_ICO_00 = 0xE4
3618
+ VK_PROCESSKEY = 0xE5
3619
+ VK_ICO_CLEAR = 0xE6
3620
+ VK_OEM_RESET = 0xE9
3621
+ VK_OEM_JUMP = 0xEA
3622
+ VK_OEM_PA1 = 0xEB
3623
+ VK_OEM_PA2 = 0xEC
3624
+ VK_OEM_PA3 = 0xED
3625
+ VK_OEM_WSCTRL = 0xEE
3626
+ VK_OEM_CUSEL = 0xEF
3627
+ VK_OEM_ATTN = 0xF0
3628
+ VK_OEM_FINISH = 0xF1
3629
+ VK_OEM_COPY = 0xF2
3630
+ VK_OEM_AUTO = 0xF3
3631
+ VK_OEM_ENLW = 0xF4
3632
+ VK_OEM_BACKTAB = 0xF5
3633
+ VK_ATTN = 0xF6
3634
+ VK_CRSEL = 0xF7
3635
+ VK_EXSEL = 0xF8
3636
+ VK_EREOF = 0xF9
3637
+ VK_PLAY = 0xFA
3638
+ VK_ZOOM = 0xFB
3639
+ VK_NONAME = 0xFC
3640
+ VK_PA1 = 0xFD
3641
+ VK_OEM_CLEAR = 0xFE
3642
+ )
3643
+
3644
+ // Mouse button constants.
3645
+ // https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str
3646
+ const (
3647
+ FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001
3648
+ RIGHTMOST_BUTTON_PRESSED = 0x0002
3649
+ FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004
3650
+ FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008
3651
+ FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010
3652
+ )
3653
+
3654
+ // Control key state constaints.
3655
+ // https://docs.microsoft.com/en-us/windows/console/key-event-record-str
3656
+ // https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str
3657
+ const (
3658
+ CAPSLOCK_ON = 0x0080
3659
+ ENHANCED_KEY = 0x0100
3660
+ LEFT_ALT_PRESSED = 0x0002
3661
+ LEFT_CTRL_PRESSED = 0x0008
3662
+ NUMLOCK_ON = 0x0020
3663
+ RIGHT_ALT_PRESSED = 0x0001
3664
+ RIGHT_CTRL_PRESSED = 0x0004
3665
+ SCROLLLOCK_ON = 0x0040
3666
+ SHIFT_PRESSED = 0x0010
3667
+ )
3668
+
3669
+ // Mouse event record event flags.
3670
+ // https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str
3671
+ const (
3672
+ MOUSE_MOVED = 0x0001
3673
+ DOUBLE_CLICK = 0x0002
3674
+ MOUSE_WHEELED = 0x0004
3675
+ MOUSE_HWHEELED = 0x0008
3676
+ )
3677
+
3678
+ // Input Record Event Types
3679
+ // https://learn.microsoft.com/en-us/windows/console/input-record-str
3680
+ const (
3681
+ FOCUS_EVENT = 0x0010
3682
+ KEY_EVENT = 0x0001
3683
+ MENU_EVENT = 0x0008
3684
+ MOUSE_EVENT = 0x0002
3685
+ WINDOW_BUFFER_SIZE_EVENT = 0x0004
3686
+ )
0 commit comments