всем привет. вот задачка - посылать нажатие клавиш в игру. а именно - например пробела чтоб прыгать. пробовал такие методы: 1) GetKeyboardState(keyb); keyb[VK_SPACE] |= 128; SetKeyboardState(keyb); 2) через SendInput 3) keybd_event работает и в менюхах и в консоли, но в самой игре - реакция 0. =( сталкивался кто? (может директинпут... но с этим сомнения есть)
Ну тогда попробуй поглядеть все окна которые принадлежат процессу и каждому окну шли WM_KEYDOWN / WM_KEYUP
тоже делал через PostMessage. тут не проходит тк юзается dinput который читает напрямую. тогда суть немного меняется - как изменить kbdclass из ддк чтобы можно было "вписывать" нажатие программно =)
Тогда тебе нужно через IoCreateDevice и IoAttachDevice аттачиться к \\Device\\KeyboardClass0 и там уже фильтровать что и откого идет чтобы глянуть как пашет, а дальше самому работать уже с этим устройством для посылки нажания А вообще обработка нажатия на кнопку в \\Device\\KeyboardClass0 идет через IRP_MJ_READ Где буфер - это typedef struct _KEYBOARD_INPUT_DATA { USHORT UnitId; USHORT MakeCode; USHORT Flags; USHORT Reserved; ULONG ExtraInformation; } KEYBOARD_INPUT_DATA, *PKEYBOARD_INPUT_DATA; Так что как вариант можно поробовать самому делать подобного типа запросы к драйверу.
блин я немного забыл что когда контру сворачиваешь, управление переходит к рабочему столу, чтож тогда буду тренироваться с dinput %)