Я пытаюсь написать небольшое приложение для игры, в которую я играю, которая позволяет мне отправлять нажатия клавиш. К сожалению, их программное обеспечение блокирует входящие события нажатия клавиш как SendMessage / PostMessage, так и SendKeys. Обычно я бы просто сказал, что это намеренно, и оставил бы все как есть ...
Моя клавиатура G15 позволяет создавать макросы с привязкой к клавишам для игр, и с этим отлично работает. Поскольку макросы запускаются из программного обеспечения клавиатуры, они используют другую форму отправки нажатий клавиш, чем я уже пробовал.
Является ли это низкоуровневым способом нажатия клавиш или, в основном, отправкой их так же, как если бы они были нажаты? Вот мои попытки кода пока ...
private void button1_Click(object sender, EventArgs e)
{
// TRY #1
IntPtr hWnd = FindWindow("NIVAL_MMO_ENGINE", "Allods Online");
PostMessage(hWnd, WM_KEYDOWN, ((IntPtr)Keys.W), IntPtr.Zero);
// TRY #2
IntPtr Handle = FindWindow("NIVAL_MMO_ENGINE", "Allods Online");
// Verify that Process is a running process.
if (Handle == IntPtr.Zero)
{
MessageBox.Show("Calculator is not running.");
return;
}
SetForegroundWindow(Handle);
SendKeys.SendWait("w");
}