TizzyT

KeyboardMonitor -TizzyT

Oct 15th, 2015
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 6.13 KB | None | 0 0
  1. Public Class KeyboardMonitor
  2.     Private Shared _Keys As New List(Of Keys)
  3.     Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Integer) As Short
  4.     Public Shared Function KeyState(ByVal Key As Keys) As Boolean
  5.         If GetKeyState(Key) < 0 Then Return True Else Return False
  6.     End Function
  7.     Public Shared Function GetKeyStates(Optional ByVal Keys() As Keys = Nothing) As KeyStates
  8.         If Keys Is Nothing Then
  9.             Return New KeyStates(True)
  10.         Else
  11.             Return New KeyStates(False, Keys)
  12.         End If
  13.     End Function
  14.     Public Shared Sub AddKey(ByVal Key As Keys)
  15.         If _Keys.Contains(Key) = False Then _Keys.Add(Key)
  16.     End Sub
  17.     Public Shared Sub AddKeys(ByVal [Keys]() As Keys)
  18.         For Each K As Keys In [Keys]
  19.             If _Keys.Contains(K) = False Then _Keys.Add(K)
  20.         Next
  21.     End Sub
  22.     Public Shared Function RemoveKey(ByVal Key As Keys) As Boolean
  23.         Return _Keys.Remove(Key)
  24.     End Function
  25.     Public Shared Function RemoveKeys(ByVal [Keys]() As Keys) As Boolean
  26.         RemoveKeys = True
  27.         For Each K As Keys In [Keys]
  28.             If RemoveKeys Then RemoveKeys = _Keys.Remove(K) Else _Keys.Remove(K)
  29.         Next
  30.     End Function
  31.     Public Structure KeyStates
  32.         Private _Key As Dictionary(Of Keys, Boolean)
  33.         Public Sub New(ByVal Poll As Boolean, Optional ByVal Keys() As Keys = Nothing)
  34.             _Key = New Dictionary(Of Keys, Boolean)
  35.             If Poll Then
  36.                 For Each K As Keys In _Keys
  37.                     If GetKeyState(K) < 0 Then _Key.Add(K, True)
  38.                 Next
  39.             Else
  40.                 For Each K As Keys In Keys
  41.                     If GetKeyState(K) < 0 Then _Key.Add(K, True)
  42.                 Next
  43.             End If
  44.         End Sub
  45.         Default Public ReadOnly Property State(ByVal Key As Keys) As Boolean
  46.             Get
  47.                 If _Key.ContainsKey(Key) Then Return _Key(Key) Else Return False
  48.             End Get
  49.         End Property
  50.     End Structure
  51.     Public Enum Keys
  52.         None = 0
  53.         LButton = 1
  54.         RButton = 2
  55.         Cancel = 3
  56.         MButton = 4
  57.         XButton1 = 5
  58.         XButton2 = 6
  59.         Back = 8
  60.         Tab = 9
  61.         LineFeed = 10
  62.         Clear = 12
  63.         Enter = 13
  64.         [Return] = 13
  65.         ShiftKey = 16
  66.         ControlKey = 17
  67.         Menu = 18
  68.         Pause = 19
  69.         CapsLock = 20
  70.         Capital = 20
  71.         HangulMode = 21
  72.         HanguelMode = 21
  73.         KanaMode = 21
  74.         JunjaMode = 23
  75.         FinalMode = 24
  76.         KanjiMode = 25
  77.         HanjaMode = 25
  78.         Escape = 27
  79.         IMEConvert = 28
  80.         IMENonconvert = 29
  81.         IMEAccept = 30
  82.         IMEAceept = 30
  83.         IMEModeChange = 31
  84.         Space = 32
  85.         Prior = 33
  86.         PageUp = 33
  87.         PageDown = 34
  88.         [Next] = 34
  89.         [End] = 35
  90.         Home = 36
  91.         Left = 37
  92.         Up = 38
  93.         Right = 39
  94.         Down = 40
  95.         [Select] = 41
  96.         Print = 42
  97.         Execute = 43
  98.         Snapshot = 44
  99.         PrintScreen = 44
  100.         Insert = 45
  101.         Delete = 46
  102.         Help = 47
  103.         D0 = 48
  104.         D1 = 49
  105.         D2 = 50
  106.         D3 = 51
  107.         D4 = 52
  108.         D5 = 53
  109.         D6 = 54
  110.         D7 = 55
  111.         D8 = 56
  112.         D9 = 57
  113.         A = 65
  114.         B = 66
  115.         C = 67
  116.         D = 68
  117.         E = 69
  118.         F = 70
  119.         G = 71
  120.         H = 72
  121.         I = 73
  122.         J = 74
  123.         K = 75
  124.         L = 76
  125.         M = 77
  126.         N = 78
  127.         O = 79
  128.         P = 80
  129.         Q = 81
  130.         R = 82
  131.         S = 83
  132.         T = 84
  133.         U = 85
  134.         V = 86
  135.         W = 87
  136.         X = 88
  137.         Y = 89
  138.         Z = 90
  139.         LWin = 91
  140.         RWin = 92
  141.         Apps = 93
  142.         Sleep = 95
  143.         NumPad0 = 96
  144.         NumPad1 = 97
  145.         NumPad2 = 98
  146.         NumPad3 = 99
  147.         NumPad4 = 100
  148.         NumPad5 = 101
  149.         NumPad6 = 102
  150.         NumPad7 = 103
  151.         NumPad8 = 104
  152.         NumPad9 = 105
  153.         Multiply = 106
  154.         Add = 107
  155.         Separator = 108
  156.         Subtract = 109
  157.         [Decimal] = 110
  158.         Divide = 111
  159.         F1 = 112
  160.         F2 = 113
  161.         F3 = 114
  162.         F4 = 115
  163.         F5 = 116
  164.         F6 = 117
  165.         F7 = 118
  166.         F8 = 119
  167.         F9 = 120
  168.         F10 = 121
  169.         F11 = 122
  170.         F12 = 123
  171.         F13 = 124
  172.         F14 = 125
  173.         F15 = 126
  174.         F16 = 127
  175.         F17 = 128
  176.         F18 = 129
  177.         F19 = 130
  178.         F20 = 131
  179.         F21 = 132
  180.         F22 = 133
  181.         F23 = 134
  182.         F24 = 135
  183.         NumLock = 144
  184.         Scroll = 145
  185.         LShiftKey = 160
  186.         RShiftKey = 161
  187.         LControlKey = 162
  188.         RControlKey = 163
  189.         LMenu = 164
  190.         RMenu = 165
  191.         BrowserBack = 166
  192.         BrowserForward = 167
  193.         BrowserRefresh = 168
  194.         BrowserStop = 169
  195.         BrowserSearch = 170
  196.         BrowserFavorites = 171
  197.         BrowserHome = 172
  198.         VolumeMute = 173
  199.         VolumeDown = 174
  200.         VolumeUp = 175
  201.         MediaNextTrack = 176
  202.         MediaPreviousTrack = 177
  203.         MediaStop = 178
  204.         MediaPlayPause = 179
  205.         LaunchMail = 180
  206.         SelectMedia = 181
  207.         LaunchApplication1 = 182
  208.         LaunchApplication2 = 183
  209.         OemSemicolon = 186
  210.         Oem1 = 186
  211.         Oemplus = 187
  212.         Oemcomma = 188
  213.         OemMinus = 189
  214.         OemPeriod = 190
  215.         Oem2 = 191
  216.         OemQuestion = 191
  217.         Oem3 = 192
  218.         Oemtilde = 192
  219.         Oem4 = 219
  220.         OemOpenBrackets = 219
  221.         OemPipe = 220
  222.         Oem5 = 220
  223.         OemCloseBrackets = 221
  224.         Oem6 = 221
  225.         OemQuotes = 222
  226.         Oem7 = 222
  227.         Oem8 = 223
  228.         Oem102 = 226
  229.         OemBackslash = 226
  230.         ProcessKey = 229
  231.         Packet = 231
  232.         Attn = 246
  233.         Crsel = 247
  234.         Exsel = 248
  235.         EraseEof = 249
  236.         Play = 250
  237.         Zoom = 251
  238.         NoName = 252
  239.         Pa1 = 253
  240.         OemClear = 254
  241.         KeyCode = 65535
  242.         Shift = 65536
  243.         Control = 131072
  244.         Alt = 262144
  245.         Modifiers = -65536
  246.     End Enum
  247. End Class
Advertisement
Add Comment
Please, Sign In to add comment