private VirtualKey MapKeys(Event e)
{
switch (e.keyCode)
{
case KeyCode.Backspace: return VirtualKey.BACK;
case KeyCode.Delete: return VirtualKey.DELETE;
case KeyCode.Tab: return VirtualKey.TAB;
case KeyCode.Clear: return VirtualKey.CLEAR;
case KeyCode.Return: return VirtualKey.RETURN;
case KeyCode.Pause: return VirtualKey.PAUSE;
case KeyCode.Escape: return VirtualKey.ESCAPE;
case KeyCode.Space: return VirtualKey.SPACE;
case KeyCode.Keypad0: return VirtualKey.NUMPAD0;
case KeyCode.Keypad1: return VirtualKey.NUMPAD1;
case KeyCode.Keypad2: return VirtualKey.NUMPAD2;
case KeyCode.Keypad3: return VirtualKey.NUMPAD3;
case KeyCode.Keypad4: return VirtualKey.NUMPAD4;
case KeyCode.Keypad5: return VirtualKey.NUMPAD5;
case KeyCode.Keypad6: return VirtualKey.NUMPAD6;
case KeyCode.Keypad7: return VirtualKey.NUMPAD7;
case KeyCode.Keypad8: return VirtualKey.NUMPAD8;
case KeyCode.Keypad9: return VirtualKey.NUMPAD9;
case KeyCode.KeypadPeriod: return VirtualKey.DECIMAL;
case KeyCode.KeypadDivide: return VirtualKey.DIVIDE;
case KeyCode.KeypadMultiply: return VirtualKey.MULTIPLY;
case KeyCode.KeypadMinus: return VirtualKey.SUBTRACT;
case KeyCode.KeypadPlus: return VirtualKey.ADD;
case KeyCode.KeypadEnter: return VirtualKey.SEPARATOR;
case KeyCode.KeypadEquals: return VirtualKey.UNKNOWN;
case KeyCode.UpArrow: return VirtualKey.UP;
case KeyCode.DownArrow: return VirtualKey.DOWN;
case KeyCode.RightArrow: return VirtualKey.RIGHT;
case KeyCode.LeftArrow: return VirtualKey.LEFT;
case KeyCode.Insert: return VirtualKey.INSERT;
case KeyCode.Home: return VirtualKey.HOME;
case KeyCode.End: return VirtualKey.END;
case KeyCode.PageUp: return VirtualKey.PRIOR;
case KeyCode.PageDown: return VirtualKey.NEXT;
case KeyCode.F1: return VirtualKey.F1;
case KeyCode.F2: return VirtualKey.F2;
case KeyCode.F3: return VirtualKey.F3;
case KeyCode.F4: return VirtualKey.F4;
case KeyCode.F5: return VirtualKey.F5;
case KeyCode.F6: return VirtualKey.F6;
case KeyCode.F7: return VirtualKey.F7;
case KeyCode.F8: return VirtualKey.F8;
case KeyCode.F9: return VirtualKey.F9;
case KeyCode.F10: return VirtualKey.F10;
case KeyCode.F11: return VirtualKey.F11;
case KeyCode.F12: return VirtualKey.F12;
case KeyCode.F13: return VirtualKey.F13;
case KeyCode.F14: return VirtualKey.F14;
case KeyCode.F15: return VirtualKey.F15;
case KeyCode.Alpha0: return VirtualKey.NUM_0;
case KeyCode.Alpha1: return VirtualKey.NUM_1;
case KeyCode.Alpha2: return VirtualKey.NUM_2;
case KeyCode.Alpha3: return VirtualKey.NUM_3;
case KeyCode.Alpha4: return VirtualKey.NUM_4;
case KeyCode.Alpha5: return VirtualKey.NUM_5;
case KeyCode.Alpha6: return VirtualKey.NUM_6;
case KeyCode.Alpha7: return VirtualKey.NUM_7;
case KeyCode.Alpha8: return VirtualKey.NUM_8;
case KeyCode.Alpha9: return VirtualKey.NUM_9;
case KeyCode.Exclaim: return VirtualKey.NUM_1;
case KeyCode.DoubleQuote: return VirtualKey.OEM_7;
case KeyCode.Hash: return VirtualKey.NUM_3;
case KeyCode.Dollar: return VirtualKey.NUM_4;
case KeyCode.Ampersand: return VirtualKey.NUM_7;
case KeyCode.Quote: return VirtualKey.OEM_7;
case KeyCode.LeftParen: return VirtualKey.NUM_9;
case KeyCode.RightParen: return VirtualKey.NUM_0;
case KeyCode.Asterisk: return VirtualKey.NUM_8;
case KeyCode.Plus: return VirtualKey.OEM_PLUS;
case KeyCode.Comma: return VirtualKey.OEM_COMMA;
case KeyCode.Minus: return VirtualKey.OEM_MINUS;
case KeyCode.Period: return VirtualKey.OEM_PERIOD;
case KeyCode.Slash: return VirtualKey.OEM_2;
case KeyCode.Colon: return VirtualKey.OEM_1;
case KeyCode.Semicolon: return VirtualKey.OEM_1;
case KeyCode.Less: return VirtualKey.OEM_COMMA;
case KeyCode.Equals: return VirtualKey.OEM_PLUS;
case KeyCode.Greater: return VirtualKey.OEM_PERIOD;
case KeyCode.Question: return VirtualKey.OEM_2;
case KeyCode.At: return VirtualKey.NUM_2;
case KeyCode.LeftBracket: return VirtualKey.OEM_4;
case KeyCode.Backslash: return VirtualKey.OEM_102;
case KeyCode.RightBracket: return VirtualKey.OEM_6;
case KeyCode.Caret: return VirtualKey.NUM_6;
case KeyCode.Underscore: return VirtualKey.OEM_MINUS;
case KeyCode.BackQuote: return VirtualKey.OEM_3;
case KeyCode.A: return VirtualKey.A;
case KeyCode.B: return VirtualKey.B;
case KeyCode.C: return VirtualKey.C;
case KeyCode.D: return VirtualKey.D;
case KeyCode.E: return VirtualKey.E;
case KeyCode.F: return VirtualKey.F;
case KeyCode.G: return VirtualKey.G;
case KeyCode.H: return VirtualKey.H;
case KeyCode.I: return VirtualKey.I;
case KeyCode.J: return VirtualKey.J;
case KeyCode.K: return VirtualKey.K;
case KeyCode.L: return VirtualKey.L;
case KeyCode.M: return VirtualKey.M;
case KeyCode.N: return VirtualKey.N;
case KeyCode.O: return VirtualKey.O;
case KeyCode.P: return VirtualKey.P;
case KeyCode.Q: return VirtualKey.Q;
case KeyCode.R: return VirtualKey.R;
case KeyCode.S: return VirtualKey.S;
case KeyCode.T: return VirtualKey.T;
case KeyCode.U: return VirtualKey.U;
case KeyCode.V: return VirtualKey.V;
case KeyCode.W: return VirtualKey.W;
case KeyCode.X: return VirtualKey.X;
case KeyCode.Y: return VirtualKey.Y;
case KeyCode.Z: return VirtualKey.Z;
case KeyCode.Numlock: return VirtualKey.NUMLOCK;
case KeyCode.CapsLock: return VirtualKey.CAPITAL;
case KeyCode.ScrollLock: return VirtualKey.SCROLL;
case KeyCode.RightShift: return VirtualKey.RSHIFT;
case KeyCode.LeftShift: return VirtualKey.LSHIFT;
case KeyCode.RightControl: return VirtualKey.RCONTROL;
case KeyCode.LeftControl: return VirtualKey.LCONTROL;
case KeyCode.RightAlt: return VirtualKey.RMENU;
case KeyCode.LeftAlt: return VirtualKey.LMENU;
case KeyCode.LeftApple: return VirtualKey.LWIN;
case KeyCode.LeftWindows: return VirtualKey.LWIN;
case KeyCode.RightApple: return VirtualKey.RWIN;
case KeyCode.RightWindows: return VirtualKey.RWIN;
case KeyCode.AltGr: return VirtualKey.UNKNOWN;
case KeyCode.Help: return VirtualKey.HELP;
case KeyCode.Print: return VirtualKey.PRINT;
case KeyCode.SysReq: return VirtualKey.UNKNOWN;
case KeyCode.Break: return VirtualKey.PAUSE;
case KeyCode.Menu: return VirtualKey.MENU;
default: return 0;
}
}