Просмотр полной версии : Нажатие клавиш в 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 %)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot