Эмуляция нажатия клавиши в игре - C# (234054)

Узнай цену своей работы

Формулировка задачи:

Нужно нажать клавишу программно в игре. Sendmessage,sendkeys или keybd_event в игре не работает-отправляет только в приложения windows(блокнот,калькулятор итд...). Пытался найти что то в Directinput , но нашёл только проверку нажатия,а мне нужно отослать.Подскажите как это сделать,желательно на примере.Можно это как то сделать напрямую через драйвер?

Решение задачи: «Эмуляция нажатия клавиши в игре»

textual
Листинг программы
  1.    
  2.         public struct KEYBOARDINPUT
  3.         {
  4.             public uint type;
  5.             public ushort wVk;
  6.             ushort wScan;
  7.             public uint dwFlags;
  8.             uint time;
  9.             uint dwExtraInfo;
  10.             uint unused1;
  11.             uint unused2;
  12.         }
  13.  
  14.  
  15.         public const uint INPUT_KEYBOARD = 1;
  16.         public const uint KEYEVENTF_KEYUP = 2;
  17.         public const ushort VK_TAB = 0x0053;// sS
  18.         public const ushort VK_SHIFT = 0x0010;
  19.         public const ushort VK_CTRL = 0x11;
  20.         public const ushort VK_V = 0x56;
  21.  
  22.         public static void SetCtrlV()
  23.         {
  24.             KEYBOARDINPUT[] inputs;
  25.            
  26.             inputs = new KEYBOARDINPUT[4];
  27.             inputs[0].type = inputs[1].type = inputs[2].type = inputs[3].type = INPUT_KEYBOARD;
  28.             inputs[0].wVk = inputs[3].wVk = VK_CTRL;
  29.             inputs[1].wVk = inputs[2].wVk = VK_V;
  30.             inputs[2].dwFlags = inputs[3].dwFlags = KEYEVENTF_KEYUP;
  31.             SendInput(4, inputs, 0x001C);
  32.         }
  33.  
  34.         public static void SetV()
  35.         {
  36.             KEYBOARDINPUT[] inputs;
  37.  
  38.             inputs = new KEYBOARDINPUT[2];
  39.             inputs[0].type = inputs[1].type = INPUT_KEYBOARD;
  40.             inputs[0].wVk = inputs[1].wVk = VK_V;
  41.             inputs[1].dwFlags = KEYEVENTF_KEYUP;
  42.             SendInput(2, inputs, 0x001C);
  43.         }

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


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

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

10   голосов , оценка 3.7 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы