Программное нажатие кнопки
От: moridin_  
Дата: 24.02.07 10:08
Оценка:
Доброго времени суток.
Есть некое приложение, игра. Задача состоит в том, чтобы в нужные мне моменты времени нажимать на клавиатуре определенные кнопки.
Попытка воспользоваться функциями keybd_event,SendInput ни к чему не приводит. В окнах виндовса с помощью этих функций кнопки прекрасно нажимаются, но не в игре.
Знающие люди говорят, что для приложений, использующих DirectInput, нужен другой подход. Игра грузит dinput8.dll, значит тут должен использоваться DirectInput. Ок. Создаю proxy dll для dinput8.dll, перехватываю вызов DirectInput8Create, возвращаю свой proxy класс для IDirectInput8. Аналогично поступаю с вызовом IDirectInput8::CreateDevice, на вызов этой функции возвращаю свой proxy класс для IDirectInputDevice8. Тут пробема. CreateDevice вызывается только 1 раз и с параметром GUID_SysMouse, т.е. клавиатура через DirectInput не обрабатывается.
Тупик. Может ли кто-нибудь подсказать, что можно сделать еще? Каким образом съэмулировать нажатие кнопки?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.