C# вызов/удержание/отпускание клавиш ( не работает на игровом управлении)
Следующий код содержит ключи и освобождает его
[DllImport("user32.dll", SetLastError = true)] static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); public const int KEYEVENTF_KEYUP = 0x02; public const int VK_W = 0x57; private void timer1_Tick(object sender, EventArgs e) { keybd_event(VK_W, 0, 0, 0); // keybd_event(VK_W, 0, KEYEVENTF_KEYUP, 0); }
Это действительно работает, но не в Майнкрафте. После часа головной боли я обнаружил, что не могу вызвать определенные элементы управления minecraft. например если бы у меня был ключ 'идти вперед' значение 'ж' я не могу назвать этот ключ programmitcaly если я изменить это ключ к чему-то еще. Но есть и другие приложения для нажатия клавиш, которые работают с играми, как они это делают? Существует ли какой-либо другой API, который способен вызывать и удерживать ключи?
Что я уже пробовал:
Протестированный код на других приложениях работает нормально.
johannesnestler
звучит странно, вы уверены, что нет никакой другой проблемы (отсутствие фокуса или что-то в этом роде?)
AFAIK keybd_event был заменен на SendInput (возможно, прочтите замечания docu для SendInput https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-sendinput)
Thaana Paana
Я знаю, что очень опаздываю, но я думаю, что это java, и я действительно отказался от этого.