// TODO: Convert this function to a lookup from an XML file, then provide multiple files and a way to fine-tune... private static uint ConvertVKeyToiMonMceKeyCode(Keyboard.VKey vKey, KeyModifierState ModState) { switch (vKey) { case Keyboard.VKey.VK_A: return 0x04; case Keyboard.VKey.VK_B: return 0x05; case Keyboard.VKey.VK_C: return 0x06; case Keyboard.VKey.VK_D: return 0x07; case Keyboard.VKey.VK_E: return 0x08; case Keyboard.VKey.VK_F: return 0x09; case Keyboard.VKey.VK_G: return 0x0A; case Keyboard.VKey.VK_H: return 0x0B; case Keyboard.VKey.VK_I: return 0x0C; case Keyboard.VKey.VK_J: return 0x0D; case Keyboard.VKey.VK_K: return 0x0E; case Keyboard.VKey.VK_L: return 0x0F; case Keyboard.VKey.VK_M: return 0x10; case Keyboard.VKey.VK_N: return 0x11; case Keyboard.VKey.VK_O: return 0x12; case Keyboard.VKey.VK_P: return 0x13; case Keyboard.VKey.VK_Q: return 0x14; case Keyboard.VKey.VK_R: return 0x15; case Keyboard.VKey.VK_S: return 0x16; case Keyboard.VKey.VK_T: return 0x17; case Keyboard.VKey.VK_U: return 0x18; case Keyboard.VKey.VK_V: return 0x19; case Keyboard.VKey.VK_W: return 0x1A; case Keyboard.VKey.VK_X: return 0x1B; case Keyboard.VKey.VK_Y: return 0x1C; case Keyboard.VKey.VK_Z: return 0x1D; case Keyboard.VKey.VK_1: return 0x01; case Keyboard.VKey.VK_2: return 0x02; case Keyboard.VKey.VK_3: if (ModState.ShiftOn | ModState.LastKeyupWasShift) return 0x1E; return 0x03; case Keyboard.VKey.VK_4: return 0x04; case Keyboard.VKey.VK_5: return 0x05; case Keyboard.VKey.VK_6: return 0x06; case Keyboard.VKey.VK_7: return 0x07; case Keyboard.VKey.VK_8: if (ModState.ShiftOn | ModState.LastKeyupWasShift) return 0x1D; return 0x08; case Keyboard.VKey.VK_9: return 0x09; case Keyboard.VKey.VK_0: return 0x00; case Keyboard.VKey.VK_ESCAPE: return 0x29; case Keyboard.VKey.VK_RETURN: return 0x28; case Keyboard.VKey.VK_BACK: return 0x23; case Keyboard.VKey.VK_TAB: return 0x2B; case Keyboard.VKey.VK_SPACE: return 0x2C; case Keyboard.VKey.VK_OEM_MINUS: return 0x2D; case Keyboard.VKey.VK_OEM_PLUS: return 0x2E; case Keyboard.VKey.VK_OEM_4: return 0x2F; case Keyboard.VKey.VK_OEM_6: return 0x30; case Keyboard.VKey.VK_OEM_5: return 0x31; //case Keyboard.VKEY.VK_Non-US #: return 0X32; case Keyboard.VKey.VK_OEM_1: return 0x33; case Keyboard.VKey.VK_OEM_7: return 0x34; case Keyboard.VKey.VK_OEM_3: return 0x35; case Keyboard.VKey.VK_OEM_COMMA: return 0x36; case Keyboard.VKey.VK_OEM_PERIOD: return 0x37; case Keyboard.VKey.VK_OEM_2: return 0x38; case Keyboard.VKey.VK_CAPITAL: return 0x39; case Keyboard.VKey.VK_F1: return 0x3A; case Keyboard.VKey.VK_F2: return 0x3B; case Keyboard.VKey.VK_F3: return 0x3C; case Keyboard.VKey.VK_F4: return 0x3D; case Keyboard.VKey.VK_F5: return 0x3E; case Keyboard.VKey.VK_F6: return 0x3F; case Keyboard.VKey.VK_F7: return 0x40; case Keyboard.VKey.VK_F8: return 0x41; case Keyboard.VKey.VK_F9: return 0x42; case Keyboard.VKey.VK_F10: return 0x43; case Keyboard.VKey.VK_F11: return 0x44; case Keyboard.VKey.VK_F12: return 0x45; case Keyboard.VKey.VK_PRINT: return 0x46; case Keyboard.VKey.VK_SCROLL: return 0x47; case Keyboard.VKey.VK_PAUSE: return 0x48; case Keyboard.VKey.VK_INSERT: return 0x49; case Keyboard.VKey.VK_HOME: return 0x4A; case Keyboard.VKey.VK_PRIOR: return 0x4B; case Keyboard.VKey.VK_DELETE: return 0x4C; case Keyboard.VKey.VK_END: return 0x4D; case Keyboard.VKey.VK_NEXT: return 0x4E; case Keyboard.VKey.VK_RIGHT: return 0x4F; case Keyboard.VKey.VK_LEFT: return 0x50; case Keyboard.VKey.VK_DOWN: return 0x51; case Keyboard.VKey.VK_UP: return 0x52; case Keyboard.VKey.VK_OEM_102: return 0x64; case Keyboard.VKey.VK_APPS: return 0x65; default: throw new ArgumentException(String.Format("Unknown Key Value {0}", vKey), "vKey"); } }
private static uint ConvertVKeyToiMonKeyCode(Keyboard.VKey vKey, KeyModifierState ModState) { switch (vKey) { case Keyboard.VKey.VK_BACK: return 0x20; case Keyboard.VKey.VK_SPACE: return 0x94; case Keyboard.VKey.VK_1: return 0x3A; case Keyboard.VKey.VK_2: return 0xF2; case Keyboard.VKey.VK_3: if (ModState.ShiftOn | ModState.LastKeyupWasShift) return 0x60; return 0x32; case Keyboard.VKey.VK_4: return 0x8A; case Keyboard.VKey.VK_5: return 0x5A; case Keyboard.VKey.VK_6: return 0xAA; case Keyboard.VKey.VK_7: return 0xD6; case Keyboard.VKey.VK_8: if (ModState.ShiftOn | ModState.LastKeyupWasShift) return 0x38; return 0x88; case Keyboard.VKey.VK_9: return 0xA0; case Keyboard.VKey.VK_0: return 0xEA; case Keyboard.VKey.VK_RETURN: return 0x22; case Keyboard.VKey.VK_ESCAPE: return 0xFC; default: return 0; //throw new ArgumentException(String.Format("Unknown Key Value {0}", vKey), "vKey"); } }