![]() |
Нажатие клавиш в Counter Strike
всем привет. вот задачка - посылать нажатие клавиш в игру. а именно - например пробела чтоб прыгать.
пробовал такие методы: 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 %)
|
| Время: 21:15 |