public static async Task KeyPressSingle(KeysVirtual virtualKey, bool extendedKey) { try { uint scanByte = 0; KeyboardEventFlags KeyFlagsDown = 0; KeyboardEventFlags KeyFlagsUp = 0; if (extendedKey) { scanByte = MapVirtualKey(virtualKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC_EX); KeyFlagsDown = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUp = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_KEYUP; } else { scanByte = MapVirtualKey(virtualKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC); KeyFlagsDown = KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUp = KeyboardEventFlags.KEYEVENTF_KEYUP; } keybd_event(virtualKey, scanByte, KeyFlagsDown, 0); //Key Press await Task.Delay(10); keybd_event(virtualKey, scanByte, KeyFlagsUp, 0); //Key Release } catch { } }
public static void KeyToggleSingle(KeysVirtual virtualKey, bool extendedKey, bool toggleDown) { try { uint scanByte = 0; KeyboardEventFlags KeyFlagsDown = 0; KeyboardEventFlags KeyFlagsUp = 0; if (extendedKey) { scanByte = MapVirtualKey(virtualKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC_EX); KeyFlagsDown = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUp = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_KEYUP; } else { scanByte = MapVirtualKey(virtualKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC); KeyFlagsDown = KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUp = KeyboardEventFlags.KEYEVENTF_KEYUP; } if (toggleDown) { keybd_event(virtualKey, scanByte, KeyFlagsDown, 0); //Key Press } else { keybd_event(virtualKey, scanByte, KeyFlagsUp, 0); //Key Release } } catch { } }
public static void KeyToggleCombo(KeysVirtual modifierKey, bool extendedModifier, KeysVirtual virtualKey, bool extendedVirtual, bool toggleDown) { try { uint scanByteMod = 0; KeyboardEventFlags KeyFlagsDownMod = 0; KeyboardEventFlags KeyFlagsUpMod = 0; if (extendedModifier) { scanByteMod = MapVirtualKey(modifierKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC_EX); KeyFlagsDownMod = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUpMod = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_KEYUP; } else { scanByteMod = MapVirtualKey(modifierKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC); KeyFlagsDownMod = KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUpMod = KeyboardEventFlags.KEYEVENTF_KEYUP; } uint scanByteVk = 0; KeyboardEventFlags KeyFlagsDownVk = 0; KeyboardEventFlags KeyFlagsUpVk = 0; if (extendedVirtual) { scanByteVk = MapVirtualKey(virtualKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC_EX); KeyFlagsDownVk = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUpVk = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_KEYUP; } else { scanByteVk = MapVirtualKey(virtualKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC); KeyFlagsDownVk = KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUpVk = KeyboardEventFlags.KEYEVENTF_KEYUP; } if (toggleDown) { keybd_event(modifierKey, scanByteMod, KeyFlagsDownMod, 0); //Modifier Press keybd_event(virtualKey, scanByteVk, KeyFlagsDownVk, 0); //Key Press } else { keybd_event(virtualKey, scanByteVk, KeyFlagsUpVk, 0); //Key Release keybd_event(modifierKey, scanByteMod, KeyFlagsUpMod, 0); //Modifier Release } } catch { } }
public static async Task KeyPressCombo(KeysVirtual modifierKey, bool extendedModifier, KeysVirtual virtualKey, bool extendedVirtual) { try { uint scanByteMod = 0; KeyboardEventFlags KeyFlagsDownMod = 0; KeyboardEventFlags KeyFlagsUpMod = 0; if (extendedModifier) { scanByteMod = MapVirtualKey(modifierKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC_EX); KeyFlagsDownMod = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUpMod = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_KEYUP; } else { scanByteMod = MapVirtualKey(modifierKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC); KeyFlagsDownMod = KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUpMod = KeyboardEventFlags.KEYEVENTF_KEYUP; } uint scanByteVk = 0; KeyboardEventFlags KeyFlagsDownVk = 0; KeyboardEventFlags KeyFlagsUpVk = 0; if (extendedVirtual) { scanByteVk = MapVirtualKey(virtualKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC_EX); KeyFlagsDownVk = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUpVk = KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY | KeyboardEventFlags.KEYEVENTF_KEYUP; } else { scanByteVk = MapVirtualKey(virtualKey, MapVirtualKeyMapTypes.MAPVK_VK_TO_VSC); KeyFlagsDownVk = KeyboardEventFlags.KEYEVENTF_NONE; KeyFlagsUpVk = KeyboardEventFlags.KEYEVENTF_KEYUP; } keybd_event(modifierKey, scanByteMod, KeyFlagsDownMod, 0); //Modifier Press keybd_event(virtualKey, scanByteVk, KeyFlagsDownVk, 0); //Key Press await Task.Delay(10); keybd_event(virtualKey, scanByteVk, KeyFlagsUpVk, 0); //Key Release keybd_event(modifierKey, scanByteMod, KeyFlagsUpMod, 0); //Modifier Release } catch { } }
private static extern void keybd_event(byte bVk, byte bScan, KeyboardEventFlags dwFlags, IntPtr dwExtraInfo);
public static extern void keybd_event(KeysVirtual bVk, uint bScan, KeyboardEventFlags dwFlags, int dwExtraInfo);
/// <summary> /// Synthesizes a keystroke /// </summary> /// <param name="keyCode">A virtual-key code. The code must be a value in the range 1 to 254</param> /// <param name="bScan">A hardware scan code for the key</param> /// <param name="dwFlags">Controls various aspects of function operation</param> /// <param name="dwExtraInfo">An additional value associated with the key stroke</param> public static void KeyboardEvent(KeyboardKeyCodes keyCode, byte bScan = 0, KeyboardEventFlags dwFlags = KeyboardEventFlags.NONE, int dwExtraInfo = 0) { AutoSharpKeyboard.AutoSharpKeyboardInput.KeyboardEvent(keyCode, bScan, (int)dwFlags, dwExtraInfo); }
public static extern void keybd_event(int bVk, uint bScan, KeyboardEventFlags dwFlags, UIntPtr dwExtraInfo);
public static extern void keybd_event(VirtualKeyCodes bVk, byte bScan, KeyboardEventFlags dwFlags, UIntPtr dwExtraInfo);