В игру не передает нажатие клавиш, несмотря на то, что окно активно.
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
private void button1_Click(object sender, EventArgs e)
{
IntPtr DialogHandle = FindWindow(null, "окно игры");
if (DialogHandle == IntPtr.Zero)
{
MessageBox.Show("Window is not running.");
return;
}
SetForegroundWindow(DialogHandle);
InputSimulator sim = new InputSimulator();
sim.Keyboard.KeyPress((VirtualKeyCode)0x28);
}
Воспользовавшись поиском, я понял что это из-за защиты в самой игре, но углубившись в эту проблему, многие ссылаются на то, что SendInput
- прекрасно справляется с заданной задачей, а в этой библиотеке как раз он и используется, но увы, не работает :(
Подтолкните, пожалуйста, на путь истинный.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
При нажатии на кнопку "K" объект должен появлятся обратно, но он не появляется (в консоле ошибок нету)