Эмуляция нажатия клавиши в игре - 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д