Эмуляция нажатия клавиши в игре - C# (234054)
Формулировка задачи:
Нужно нажать клавишу программно в игре. Sendmessage,sendkeys или keybd_event в игре не работает-отправляет только в приложения windows(блокнот,калькулятор итд...). Пытался найти что то в Directinput , но нашёл только проверку нажатия,а мне нужно отослать.Подскажите как это сделать,желательно на примере.Можно это как то сделать напрямую через драйвер?
Решение задачи: «Эмуляция нажатия клавиши в игре»
textual
Листинг программы
public struct KEYBOARDINPUT { public uint type; public ushort wVk; ushort wScan; public uint dwFlags; uint time; uint dwExtraInfo; uint unused1; uint unused2; } public const uint INPUT_KEYBOARD = 1; public const uint KEYEVENTF_KEYUP = 2; public const ushort VK_TAB = 0x0053;// sS public const ushort VK_SHIFT = 0x0010; public const ushort VK_CTRL = 0x11; public const ushort VK_V = 0x56; public static void SetCtrlV() { KEYBOARDINPUT[] inputs; inputs = new KEYBOARDINPUT[4]; inputs[0].type = inputs[1].type = inputs[2].type = inputs[3].type = INPUT_KEYBOARD; inputs[0].wVk = inputs[3].wVk = VK_CTRL; inputs[1].wVk = inputs[2].wVk = VK_V; inputs[2].dwFlags = inputs[3].dwFlags = KEYEVENTF_KEYUP; SendInput(4, inputs, 0x001C); } public static void SetV() { KEYBOARDINPUT[] inputs; inputs = new KEYBOARDINPUT[2]; inputs[0].type = inputs[1].type = INPUT_KEYBOARD; inputs[0].wVk = inputs[1].wVk = VK_V; inputs[1].dwFlags = KEYEVENTF_KEYUP; SendInput(2, inputs, 0x001C); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д