894 lines
20 KiB
C#
894 lines
20 KiB
C#
using Avalonia.Controls;
|
|
using MES.Utility.EventBus;
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
using System.Windows;
|
|
using Weiz.EventBus.Core;
|
|
using 常用工具集.Base;
|
|
|
|
namespace 常用工具集.ViewModel._04破解及系统相关
|
|
{
|
|
public class 键盘钩子ViewModel : ViewModelBase, IEventHandler<KeyBordHookEvent>
|
|
{
|
|
public string ButtonText { get; set; } = "开启键盘钩子";
|
|
public string Message { get; set; } = "";
|
|
public DelegateCommand StartStopCmd { get; set; }
|
|
public DelegateCommand CleanCmd { get; set; }
|
|
public DelegateCommand PageLoaedCommand { get; set; }
|
|
|
|
|
|
public 键盘钩子ViewModel()
|
|
{
|
|
EventBus.Instance.Subscribe<KeyBordHookEvent>(this);
|
|
PageLoaedCommand = new DelegateCommand(PageLoaded);
|
|
StartStopCmd = new DelegateCommand(StartStopCmdFunc);
|
|
CleanCmd = new DelegateCommand(CleanCmdFunc);
|
|
}
|
|
|
|
private void PageLoaded(object obj)
|
|
{
|
|
|
|
}
|
|
|
|
private void StartStopCmdFunc(object obj)
|
|
{
|
|
if (ButtonText == "开启键盘钩子")
|
|
{
|
|
KeyboardHook.Start();
|
|
ButtonText = "停止键盘钩子";
|
|
GlobalValues.MainWindow.WindowState = WindowState.Minimized;
|
|
}
|
|
else
|
|
{
|
|
KeyboardHook.Stop();
|
|
ButtonText = "开启键盘钩子";
|
|
}
|
|
}
|
|
|
|
private void CleanCmdFunc(object obj)
|
|
{
|
|
Message = "";
|
|
}
|
|
|
|
public void Handle(KeyBordHookEvent evt)
|
|
{
|
|
Message += evt.Message;
|
|
}
|
|
}
|
|
|
|
|
|
public class KeyboardHook
|
|
{
|
|
private const int WH_KEYBOARD_LL = 13;
|
|
private static LowLevelKeyboardProc _proc = HookCallback;
|
|
private static IntPtr _hookID = IntPtr.Zero;
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
|
private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
|
[return: MarshalAs(UnmanagedType.Bool)]
|
|
private static extern bool UnhookWindowsHookEx(IntPtr hhk);
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
|
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);
|
|
|
|
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
|
private static extern IntPtr GetModuleHandle(string lpModuleName);
|
|
|
|
private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);
|
|
|
|
public static void Start()
|
|
{
|
|
_hookID = SetWindowsHookEx(WH_KEYBOARD_LL, _proc, GetModuleHandle(null), 0);
|
|
if (_hookID == IntPtr.Zero)
|
|
{
|
|
throw new Exception("Could not set keyboard hook");
|
|
}
|
|
}
|
|
|
|
public static void Stop()
|
|
{
|
|
bool ret = UnhookWindowsHookEx(_hookID);
|
|
if (!ret)
|
|
{
|
|
throw new Exception("Could not unset keyboard hook");
|
|
}
|
|
_hookID = IntPtr.Zero;
|
|
}
|
|
|
|
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
|
|
{
|
|
if (nCode >= 0 && wParam == (IntPtr)0x100)
|
|
{
|
|
int vkCode = Marshal.ReadInt32(lParam);
|
|
Console.WriteLine((Keys)vkCode);
|
|
EventBus.Instance.Publish(new KeyBordHookEvent(((Keys)vkCode).ToString()));
|
|
}
|
|
return CallNextHookEx(_hookID, nCode, wParam, lParam);
|
|
}
|
|
}
|
|
|
|
|
|
public enum Keys
|
|
{
|
|
//
|
|
// 摘要:
|
|
// The bitmask to extract modifiers from a key value.
|
|
Modifiers = -65536,
|
|
//
|
|
// 摘要:
|
|
// No key pressed.
|
|
None = 0,
|
|
//
|
|
// 摘要:
|
|
// The left mouse button.
|
|
LButton = 1,
|
|
//
|
|
// 摘要:
|
|
// The right mouse button.
|
|
RButton = 2,
|
|
//
|
|
// 摘要:
|
|
// The CANCEL key.
|
|
Cancel = 3,
|
|
//
|
|
// 摘要:
|
|
// The middle mouse button (three-button mouse).
|
|
MButton = 4,
|
|
//
|
|
// 摘要:
|
|
// The first x mouse button (five-button mouse).
|
|
XButton1 = 5,
|
|
//
|
|
// 摘要:
|
|
// The second x mouse button (five-button mouse).
|
|
XButton2 = 6,
|
|
//
|
|
// 摘要:
|
|
// The BACKSPACE key.
|
|
Back = 8,
|
|
//
|
|
// 摘要:
|
|
// The TAB key.
|
|
Tab = 9,
|
|
//
|
|
// 摘要:
|
|
// The LINEFEED key.
|
|
LineFeed = 10,
|
|
//
|
|
// 摘要:
|
|
// The CLEAR key.
|
|
Clear = 12,
|
|
//
|
|
// 摘要:
|
|
// The RETURN key.
|
|
Return = 13,
|
|
//
|
|
// 摘要:
|
|
// The ENTER key.
|
|
Enter = 13,
|
|
//
|
|
// 摘要:
|
|
// The SHIFT key.
|
|
ShiftKey = 16,
|
|
//
|
|
// 摘要:
|
|
// The CTRL key.
|
|
ControlKey = 17,
|
|
//
|
|
// 摘要:
|
|
// The ALT key.
|
|
Menu = 18,
|
|
//
|
|
// 摘要:
|
|
// The PAUSE key.
|
|
Pause = 19,
|
|
//
|
|
// 摘要:
|
|
// The CAPS LOCK key.
|
|
Capital = 20,
|
|
//
|
|
// 摘要:
|
|
// The CAPS LOCK key.
|
|
CapsLock = 20,
|
|
//
|
|
// 摘要:
|
|
// The IME Kana mode key.
|
|
KanaMode = 21,
|
|
//
|
|
// 摘要:
|
|
// The IME Hanguel mode key. (maintained for compatibility; use HangulMode)
|
|
HanguelMode = 21,
|
|
//
|
|
// 摘要:
|
|
// The IME Hangul mode key.
|
|
HangulMode = 21,
|
|
//
|
|
// 摘要:
|
|
// The IME Junja mode key.
|
|
JunjaMode = 23,
|
|
//
|
|
// 摘要:
|
|
// The IME final mode key.
|
|
FinalMode = 24,
|
|
//
|
|
// 摘要:
|
|
// The IME Hanja mode key.
|
|
HanjaMode = 25,
|
|
//
|
|
// 摘要:
|
|
// The IME Kanji mode key.
|
|
KanjiMode = 25,
|
|
//
|
|
// 摘要:
|
|
// The ESC key.
|
|
Escape = 27,
|
|
//
|
|
// 摘要:
|
|
// The IME convert key.
|
|
IMEConvert = 28,
|
|
//
|
|
// 摘要:
|
|
// The IME nonconvert key.
|
|
IMENonconvert = 29,
|
|
//
|
|
// 摘要:
|
|
// The IME accept key, replaces System.Windows.Forms.Keys.IMEAceept.
|
|
IMEAccept = 30,
|
|
//
|
|
// 摘要:
|
|
// The IME accept key. Obsolete, use System.Windows.Forms.Keys.IMEAccept instead.
|
|
IMEAceept = 30,
|
|
//
|
|
// 摘要:
|
|
// The IME mode change key.
|
|
IMEModeChange = 31,
|
|
//
|
|
// 摘要:
|
|
// The SPACEBAR key.
|
|
Space = 32,
|
|
//
|
|
// 摘要:
|
|
// The PAGE UP key.
|
|
Prior = 33,
|
|
//
|
|
// 摘要:
|
|
// The PAGE UP key.
|
|
PageUp = 33,
|
|
//
|
|
// 摘要:
|
|
// The PAGE DOWN key.
|
|
Next = 34,
|
|
//
|
|
// 摘要:
|
|
// The PAGE DOWN key.
|
|
PageDown = 34,
|
|
//
|
|
// 摘要:
|
|
// The END key.
|
|
End = 35,
|
|
//
|
|
// 摘要:
|
|
// The HOME key.
|
|
Home = 36,
|
|
//
|
|
// 摘要:
|
|
// The LEFT ARROW key.
|
|
Left = 37,
|
|
//
|
|
// 摘要:
|
|
// The UP ARROW key.
|
|
Up = 38,
|
|
//
|
|
// 摘要:
|
|
// The RIGHT ARROW key.
|
|
Right = 39,
|
|
//
|
|
// 摘要:
|
|
// The DOWN ARROW key.
|
|
Down = 40,
|
|
//
|
|
// 摘要:
|
|
// The SELECT key.
|
|
Select = 41,
|
|
//
|
|
// 摘要:
|
|
// The PRINT key.
|
|
Print = 42,
|
|
//
|
|
// 摘要:
|
|
// The EXECUTE key.
|
|
Execute = 43,
|
|
//
|
|
// 摘要:
|
|
// The PRINT SCREEN key.
|
|
Snapshot = 44,
|
|
//
|
|
// 摘要:
|
|
// The PRINT SCREEN key.
|
|
PrintScreen = 44,
|
|
//
|
|
// 摘要:
|
|
// The INS key.
|
|
Insert = 45,
|
|
//
|
|
// 摘要:
|
|
// The DEL key.
|
|
Delete = 46,
|
|
//
|
|
// 摘要:
|
|
// The HELP key.
|
|
Help = 47,
|
|
//
|
|
// 摘要:
|
|
// The 0 key.
|
|
D0 = 48,
|
|
//
|
|
// 摘要:
|
|
// The 1 key.
|
|
D1 = 49,
|
|
//
|
|
// 摘要:
|
|
// The 2 key.
|
|
D2 = 50,
|
|
//
|
|
// 摘要:
|
|
// The 3 key.
|
|
D3 = 51,
|
|
//
|
|
// 摘要:
|
|
// The 4 key.
|
|
D4 = 52,
|
|
//
|
|
// 摘要:
|
|
// The 5 key.
|
|
D5 = 53,
|
|
//
|
|
// 摘要:
|
|
// The 6 key.
|
|
D6 = 54,
|
|
//
|
|
// 摘要:
|
|
// The 7 key.
|
|
D7 = 55,
|
|
//
|
|
// 摘要:
|
|
// The 8 key.
|
|
D8 = 56,
|
|
//
|
|
// 摘要:
|
|
// The 9 key.
|
|
D9 = 57,
|
|
//
|
|
// 摘要:
|
|
// The A key.
|
|
A = 65,
|
|
//
|
|
// 摘要:
|
|
// The B key.
|
|
B = 66,
|
|
//
|
|
// 摘要:
|
|
// The C key.
|
|
C = 67,
|
|
//
|
|
// 摘要:
|
|
// The D key.
|
|
D = 68,
|
|
//
|
|
// 摘要:
|
|
// The E key.
|
|
E = 69,
|
|
//
|
|
// 摘要:
|
|
// The F key.
|
|
F = 70,
|
|
//
|
|
// 摘要:
|
|
// The G key.
|
|
G = 71,
|
|
//
|
|
// 摘要:
|
|
// The H key.
|
|
H = 72,
|
|
//
|
|
// 摘要:
|
|
// The I key.
|
|
I = 73,
|
|
//
|
|
// 摘要:
|
|
// The J key.
|
|
J = 74,
|
|
//
|
|
// 摘要:
|
|
// The K key.
|
|
K = 75,
|
|
//
|
|
// 摘要:
|
|
// The L key.
|
|
L = 76,
|
|
//
|
|
// 摘要:
|
|
// The M key.
|
|
M = 77,
|
|
//
|
|
// 摘要:
|
|
// The N key.
|
|
N = 78,
|
|
//
|
|
// 摘要:
|
|
// The O key.
|
|
O = 79,
|
|
//
|
|
// 摘要:
|
|
// The P key.
|
|
P = 80,
|
|
//
|
|
// 摘要:
|
|
// The Q key.
|
|
Q = 81,
|
|
//
|
|
// 摘要:
|
|
// The R key.
|
|
R = 82,
|
|
//
|
|
// 摘要:
|
|
// The S key.
|
|
S = 83,
|
|
//
|
|
// 摘要:
|
|
// The T key.
|
|
T = 84,
|
|
//
|
|
// 摘要:
|
|
// The U key.
|
|
U = 85,
|
|
//
|
|
// 摘要:
|
|
// The V key.
|
|
V = 86,
|
|
//
|
|
// 摘要:
|
|
// The W key.
|
|
W = 87,
|
|
//
|
|
// 摘要:
|
|
// The X key.
|
|
X = 88,
|
|
//
|
|
// 摘要:
|
|
// The Y key.
|
|
Y = 89,
|
|
//
|
|
// 摘要:
|
|
// The Z key.
|
|
Z = 90,
|
|
//
|
|
// 摘要:
|
|
// The left Windows logo key (Microsoft Natural Keyboard).
|
|
LWin = 91,
|
|
//
|
|
// 摘要:
|
|
// The right Windows logo key (Microsoft Natural Keyboard).
|
|
RWin = 92,
|
|
//
|
|
// 摘要:
|
|
// The application key (Microsoft Natural Keyboard).
|
|
Apps = 93,
|
|
//
|
|
// 摘要:
|
|
// The computer sleep key.
|
|
Sleep = 95,
|
|
//
|
|
// 摘要:
|
|
// The 0 key on the numeric keypad.
|
|
NumPad0 = 96,
|
|
//
|
|
// 摘要:
|
|
// The 1 key on the numeric keypad.
|
|
NumPad1 = 97,
|
|
//
|
|
// 摘要:
|
|
// The 2 key on the numeric keypad.
|
|
NumPad2 = 98,
|
|
//
|
|
// 摘要:
|
|
// The 3 key on the numeric keypad.
|
|
NumPad3 = 99,
|
|
//
|
|
// 摘要:
|
|
// The 4 key on the numeric keypad.
|
|
NumPad4 = 100,
|
|
//
|
|
// 摘要:
|
|
// The 5 key on the numeric keypad.
|
|
NumPad5 = 101,
|
|
//
|
|
// 摘要:
|
|
// The 6 key on the numeric keypad.
|
|
NumPad6 = 102,
|
|
//
|
|
// 摘要:
|
|
// The 7 key on the numeric keypad.
|
|
NumPad7 = 103,
|
|
//
|
|
// 摘要:
|
|
// The 8 key on the numeric keypad.
|
|
NumPad8 = 104,
|
|
//
|
|
// 摘要:
|
|
// The 9 key on the numeric keypad.
|
|
NumPad9 = 105,
|
|
//
|
|
// 摘要:
|
|
// The multiply key.
|
|
Multiply = 106,
|
|
//
|
|
// 摘要:
|
|
// The add key.
|
|
Add = 107,
|
|
//
|
|
// 摘要:
|
|
// The separator key.
|
|
Separator = 108,
|
|
//
|
|
// 摘要:
|
|
// The subtract key.
|
|
Subtract = 109,
|
|
//
|
|
// 摘要:
|
|
// The decimal key.
|
|
Decimal = 110,
|
|
//
|
|
// 摘要:
|
|
// The divide key.
|
|
Divide = 111,
|
|
//
|
|
// 摘要:
|
|
// The F1 key.
|
|
F1 = 112,
|
|
//
|
|
// 摘要:
|
|
// The F2 key.
|
|
F2 = 113,
|
|
//
|
|
// 摘要:
|
|
// The F3 key.
|
|
F3 = 114,
|
|
//
|
|
// 摘要:
|
|
// The F4 key.
|
|
F4 = 115,
|
|
//
|
|
// 摘要:
|
|
// The F5 key.
|
|
F5 = 116,
|
|
//
|
|
// 摘要:
|
|
// The F6 key.
|
|
F6 = 117,
|
|
//
|
|
// 摘要:
|
|
// The F7 key.
|
|
F7 = 118,
|
|
//
|
|
// 摘要:
|
|
// The F8 key.
|
|
F8 = 119,
|
|
//
|
|
// 摘要:
|
|
// The F9 key.
|
|
F9 = 120,
|
|
//
|
|
// 摘要:
|
|
// The F10 key.
|
|
F10 = 121,
|
|
//
|
|
// 摘要:
|
|
// The F11 key.
|
|
F11 = 122,
|
|
//
|
|
// 摘要:
|
|
// The F12 key.
|
|
F12 = 123,
|
|
//
|
|
// 摘要:
|
|
// The F13 key.
|
|
F13 = 124,
|
|
//
|
|
// 摘要:
|
|
// The F14 key.
|
|
F14 = 125,
|
|
//
|
|
// 摘要:
|
|
// The F15 key.
|
|
F15 = 126,
|
|
//
|
|
// 摘要:
|
|
// The F16 key.
|
|
F16 = 127,
|
|
//
|
|
// 摘要:
|
|
// The F17 key.
|
|
F17 = 128,
|
|
//
|
|
// 摘要:
|
|
// The F18 key.
|
|
F18 = 129,
|
|
//
|
|
// 摘要:
|
|
// The F19 key.
|
|
F19 = 130,
|
|
//
|
|
// 摘要:
|
|
// The F20 key.
|
|
F20 = 131,
|
|
//
|
|
// 摘要:
|
|
// The F21 key.
|
|
F21 = 132,
|
|
//
|
|
// 摘要:
|
|
// The F22 key.
|
|
F22 = 133,
|
|
//
|
|
// 摘要:
|
|
// The F23 key.
|
|
F23 = 134,
|
|
//
|
|
// 摘要:
|
|
// The F24 key.
|
|
F24 = 135,
|
|
//
|
|
// 摘要:
|
|
// The NUM LOCK key.
|
|
NumLock = 144,
|
|
//
|
|
// 摘要:
|
|
// The SCROLL LOCK key.
|
|
Scroll = 145,
|
|
//
|
|
// 摘要:
|
|
// The left SHIFT key.
|
|
LShiftKey = 160,
|
|
//
|
|
// 摘要:
|
|
// The right SHIFT key.
|
|
RShiftKey = 161,
|
|
//
|
|
// 摘要:
|
|
// The left CTRL key.
|
|
LControlKey = 162,
|
|
//
|
|
// 摘要:
|
|
// The right CTRL key.
|
|
RControlKey = 163,
|
|
//
|
|
// 摘要:
|
|
// The left ALT key.
|
|
LMenu = 164,
|
|
//
|
|
// 摘要:
|
|
// The right ALT key.
|
|
RMenu = 165,
|
|
//
|
|
// 摘要:
|
|
// The browser back key.
|
|
BrowserBack = 166,
|
|
//
|
|
// 摘要:
|
|
// The browser forward key.
|
|
BrowserForward = 167,
|
|
//
|
|
// 摘要:
|
|
// The browser refresh key.
|
|
BrowserRefresh = 168,
|
|
//
|
|
// 摘要:
|
|
// The browser stop key.
|
|
BrowserStop = 169,
|
|
//
|
|
// 摘要:
|
|
// The browser search key.
|
|
BrowserSearch = 170,
|
|
//
|
|
// 摘要:
|
|
// The browser favorites key.
|
|
BrowserFavorites = 171,
|
|
//
|
|
// 摘要:
|
|
// The browser home key.
|
|
BrowserHome = 172,
|
|
//
|
|
// 摘要:
|
|
// The volume mute key.
|
|
VolumeMute = 173,
|
|
//
|
|
// 摘要:
|
|
// The volume down key.
|
|
VolumeDown = 174,
|
|
//
|
|
// 摘要:
|
|
// The volume up key.
|
|
VolumeUp = 175,
|
|
//
|
|
// 摘要:
|
|
// The media next track key.
|
|
MediaNextTrack = 176,
|
|
//
|
|
// 摘要:
|
|
// The media previous track key.
|
|
MediaPreviousTrack = 177,
|
|
//
|
|
// 摘要:
|
|
// The media Stop key.
|
|
MediaStop = 178,
|
|
//
|
|
// 摘要:
|
|
// The media play pause key.
|
|
MediaPlayPause = 179,
|
|
//
|
|
// 摘要:
|
|
// The launch mail key.
|
|
LaunchMail = 180,
|
|
//
|
|
// 摘要:
|
|
// The select media key.
|
|
SelectMedia = 181,
|
|
//
|
|
// 摘要:
|
|
// The start application one key.
|
|
LaunchApplication1 = 182,
|
|
//
|
|
// 摘要:
|
|
// The start application two key.
|
|
LaunchApplication2 = 183,
|
|
//
|
|
// 摘要:
|
|
// The OEM Semicolon key on a US standard keyboard.
|
|
OemSemicolon = 186,
|
|
//
|
|
// 摘要:
|
|
// The OEM 1 key.
|
|
Oem1 = 186,
|
|
//
|
|
// 摘要:
|
|
// The OEM plus key on any country/region keyboard.
|
|
Oemplus = 187,
|
|
//
|
|
// 摘要:
|
|
// The OEM comma key on any country/region keyboard.
|
|
Oemcomma = 188,
|
|
//
|
|
// 摘要:
|
|
// The OEM minus key on any country/region keyboard.
|
|
OemMinus = 189,
|
|
//
|
|
// 摘要:
|
|
// The OEM period key on any country/region keyboard.
|
|
OemPeriod = 190,
|
|
//
|
|
// 摘要:
|
|
// The OEM question mark key on a US standard keyboard.
|
|
OemQuestion = 191,
|
|
//
|
|
// 摘要:
|
|
// The OEM 2 key.
|
|
Oem2 = 191,
|
|
//
|
|
// 摘要:
|
|
// The OEM tilde key on a US standard keyboard.
|
|
Oemtilde = 192,
|
|
//
|
|
// 摘要:
|
|
// The OEM 3 key.
|
|
Oem3 = 192,
|
|
//
|
|
// 摘要:
|
|
// The OEM open bracket key on a US standard keyboard.
|
|
OemOpenBrackets = 219,
|
|
//
|
|
// 摘要:
|
|
// The OEM 4 key.
|
|
Oem4 = 219,
|
|
//
|
|
// 摘要:
|
|
// The OEM pipe key on a US standard keyboard.
|
|
OemPipe = 220,
|
|
//
|
|
// 摘要:
|
|
// The OEM 5 key.
|
|
Oem5 = 220,
|
|
//
|
|
// 摘要:
|
|
// The OEM close bracket key on a US standard keyboard.
|
|
OemCloseBrackets = 221,
|
|
//
|
|
// 摘要:
|
|
// The OEM 6 key.
|
|
Oem6 = 221,
|
|
//
|
|
// 摘要:
|
|
// The OEM singled/double quote key on a US standard keyboard.
|
|
OemQuotes = 222,
|
|
//
|
|
// 摘要:
|
|
// The OEM 7 key.
|
|
Oem7 = 222,
|
|
//
|
|
// 摘要:
|
|
// The OEM 8 key.
|
|
Oem8 = 223,
|
|
//
|
|
// 摘要:
|
|
// The OEM angle bracket or backslash key on the RT 102 key keyboard.
|
|
OemBackslash = 226,
|
|
//
|
|
// 摘要:
|
|
// The OEM 102 key.
|
|
Oem102 = 226,
|
|
//
|
|
// 摘要:
|
|
// The PROCESS KEY key.
|
|
ProcessKey = 229,
|
|
//
|
|
// 摘要:
|
|
// Used to pass Unicode characters as if they were keystrokes. The Packet key value
|
|
// is the low word of a 32-bit virtual-key value used for non-keyboard input methods.
|
|
Packet = 231,
|
|
//
|
|
// 摘要:
|
|
// The ATTN key.
|
|
Attn = 246,
|
|
//
|
|
// 摘要:
|
|
// The CRSEL key.
|
|
Crsel = 247,
|
|
//
|
|
// 摘要:
|
|
// The EXSEL key.
|
|
Exsel = 248,
|
|
//
|
|
// 摘要:
|
|
// The ERASE EOF key.
|
|
EraseEof = 249,
|
|
//
|
|
// 摘要:
|
|
// The PLAY key.
|
|
Play = 250,
|
|
//
|
|
// 摘要:
|
|
// The ZOOM key.
|
|
Zoom = 251,
|
|
//
|
|
// 摘要:
|
|
// A constant reserved for future use.
|
|
NoName = 252,
|
|
//
|
|
// 摘要:
|
|
// The PA1 key.
|
|
Pa1 = 253,
|
|
//
|
|
// 摘要:
|
|
// The CLEAR key.
|
|
OemClear = 254,
|
|
//
|
|
// 摘要:
|
|
// The bitmask to extract a key code from a key value.
|
|
KeyCode = 65535,
|
|
//
|
|
// 摘要:
|
|
// The SHIFT modifier key.
|
|
Shift = 65536,
|
|
//
|
|
// 摘要:
|
|
// The CTRL modifier key.
|
|
Control = 131072,
|
|
//
|
|
// 摘要:
|
|
// The ALT modifier key.
|
|
Alt = 262144
|
|
}
|
|
}
|