.NET 4.x Посыл клавиш в активное окно (DirectX app) - C#
Формулировка задачи:
Есть игра, хочу сделать что б в ней нажималась кнопка в определенное время.
Перепробовал: SendKeys.Send(), w32.SendMessage(), w32.PostMessage(), w32.keybd_event().
Ничего не работает или работает неправильно.
А вот в AutoIT все работает на отлично простым Send("keystroke")...
Что мне использовать что бы отсыл клавиш в С# работал как в AutoIT?
З.Ы. Примеры моих проб:
const uint WM_KEYDOWN = 0x100; const uint WM_KEYUP = 0x101; const uint WM_SYSCOMMAND = 0x018; const uint SC_CLOSE = 0x053; const uint KEYEVENTF_EXTENDEDKEY = 0x01; const uint KEYEVENTF_KEYUP = 0x02; /////////1///////// PostMessage(hWin, WM_KEYDOWN, VkKeyScan((char)key), 0x00140001); Thread.Sleep(100); PostMessage(hWin, WM_KEYUP, VkKeyScan((char)key), 0xC0140001); /////////2///////// keybd_event(keyCode, 0, WM_KEYDOWN, IntPtr.Zero); Thread.Sleep(100); keybd_event(keyCode, 0, WM_KEYUP, IntPtr.Zero); /////////3///////// SendKeys.Send("{0}");
Так же пробовал использовать inputsimulator, которая является оберткой над w32.SendInput(), но и эта либа отказалась работать...
Решение задачи: «.NET 4.x Посыл клавиш в активное окно (DirectX app)»
textual
Листинг программы
lParamKeyDownExtended = 0x01000000 | lParam;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д