private static Win32Structures.INPUT BuildKeyboardInput(Win32Structures.ScanCodeShort scanCode, bool isKeyUp, bool isExtended) { Win32Structures.KEYEVENTF keyEventFlags = Win32Structures.KEYEVENTF.SCANCODE; if (isExtended) { keyEventFlags |= Win32Structures.KEYEVENTF.EXTENDEDKEY; } if (isKeyUp) { keyEventFlags |= Win32Structures.KEYEVENTF.KEYUP; } return(new Win32Structures.INPUT() { type = Win32Structures.INPUT_KEYBOARD, U = new Win32Structures.InputUnion() { ki = new Win32Structures.KEYBDINPUT() { scanCode = scanCode, vkCode = 0, flags = keyEventFlags, time = 0, dwExtraInfo = (UIntPtr)0 } } }); }
public static void SendKeyPress(Win32Structures.ScanCodeShort scanCode, bool isKeyUp, bool isExtended) { var pInputs = new Win32Structures.INPUT[] { BuildKeyboardInput(scanCode, isKeyUp, isExtended) }; SendInput((uint)pInputs.Length, pInputs, Win32Structures.INPUT.Size); }
public static string GetKeyDisplayName(Win32Structures.ScanCodeShort scanCode, bool isExtended) { if (isExtended) { _displayKeyNamesExtended.TryGetValue(scanCode, out var name); return(name); } else { _displayKeyNames.TryGetValue(scanCode, out var name); return(name); } }