/// <summary> /// ''' Sends a key up signal. /// ''' </summary> /// ''' <param name="kCode">The virtual keycode to send.</param> /// ''' <remarks></remarks> public static void KeyUp(Keys kCode) { ScanKey sKey = GetScanKey(kCode); INPUT input = new INPUT(); input.dwType = INPUT_KEYBOARD; input.mkhi.ki = new KEYBDINPUT(); input.mkhi.ki.wScan = System.Convert.ToInt16(sKey.ScanCode); input.mkhi.ki.dwExtraInfo = IntPtr.Zero; input.mkhi.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP | (sKey.Extended ? KEYEVENTF_EXTENDEDKEY : System.Convert.ToUInt32(0)); int cbSize = Marshal.SizeOf(typeof(INPUT)); SendInput(1, ref input, cbSize); }
/// <summary> /// Sends a key down signal. /// </summary> /// <param name="kCode">The virtual keycode to send.</param> /// <remarks></remarks> public static void KeyDown(Keys kCode) { ScanKey sKey = GetScanKey(kCode); INPUT input = new INPUT(); input.dwType = INPUT_KEYBOARD; input.mkhi.ki = new KEYBDINPUT(); input.mkhi.ki.wScan = (short)sKey.ScanCode; input.mkhi.ki.dwExtraInfo = IntPtr.Zero; input.mkhi.ki.dwFlags = KEYEVENTF_SCANCODE | (sKey.Extended ? KEYEVENTF_EXTENDEDKEY : 0); int cbSize = Marshal.SizeOf(typeof(INPUT)); SendInput(1, ref input, cbSize); }
/// <summary> /// Sends a key up signal. /// </summary> /// <param name="kCode">The virtual keycode to send.</param> public static void KeyUp(Keys kCode) { ScanKey sKey = GetScanKey(kCode); INPUT input = new INPUT { dwType = INPUT_KEYBOARD }; input.mkhi.ki = new KEYBDINPUT { wScan = (short)sKey.ScanCode, dwExtraInfo = IntPtr.Zero, dwFlags = (int)(KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP | (sKey.Extended ? KEYEVENTF_EXTENDEDKEY : uint.MinValue)) }; int cbSize = Marshal.SizeOf(typeof(INPUT)); SendInput(1, ref input, cbSize); }