Эмуляция нажатия клавиши в игре - 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);
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5
Похожие ответы