public static uint SendSingleVK(ushort wVk, NativeMethods.KEYEVENTF dwFlags) { NativeMethods.KEYBOARDINPUT ip = new NativeMethods.KEYBOARDINPUT(); ip.type = NativeMethods.INPUT_KEYBOARD; ip.wScan = 0; ip.dwExtraInfo = 0; ip.dwFlags = dwFlags; ip.time = 0; ip.wVk = wVk; return(NativeMethods.SendInput(1, new NativeMethods.KEYBOARDINPUT[] { ip }, Marshal.SizeOf(typeof(NativeMethods.KEYBOARDINPUT)))); }
public static uint SendSingleScanCode(ushort scanCode, NativeMethods.KEYEVENTF dwFlags) { NativeMethods.KEYBOARDINPUT ip = new NativeMethods.KEYBOARDINPUT(); ip.type = NativeMethods.INPUT_KEYBOARD; ip.wScan = scanCode; ip.dwExtraInfo = 0; ip.dwFlags = dwFlags | NativeMethods.KEYEVENTF.SCANCODE; if ((scanCode & 0xE000) == 0xE000) { ip.dwFlags |= NativeMethods.KEYEVENTF.EXTENDEDKEY; } ip.time = 0; ip.wVk = 0; return(NativeMethods.SendInput(1, new NativeMethods.KEYBOARDINPUT[] { ip }, Marshal.SizeOf(typeof(NativeMethods.KEYBOARDINPUT)))); }