NoX World - форум об игре NoX
Всё остальное => Архив => Картостроение, скриптинг и моддинг => Тема начата: Lаrboss от 31/08/2010 14:07:13
-
Кто подскажет горе программеру : как имитировать нажатие клавиши в ноксе? Среда программирования Delphi.
ИЛИ
Как имитировать нажатие клавиш в играх использующих для управления устройствами I/O Direct Input?
Dio: называйте темы информативно
-
Есть несколько путей:
1) можно имитировать событие виндоус
либо через SetWindowsHookEx + WH_JOURNALPLAYBACK
либо через SendInput
+ работает в любом приложении без подготовки
(про взаимодействие с прямымХ не знаю, но думаю что прокатит)
+ СендИнпут проще некуда
- курсор мыши ты так сдвинешь для игры
- Куда ты кликать будешь - вычисляй сам
- Для хука надо писать дллку
2) Перехватить активацию директинпут и вернуть собственный объект
+ По определению работает работает с прямымХ
+ При прямых руках можно встраиватся в любое директХ приложение
+ Можно фильтровать команды
- Координаты вычисляй сам
- Писать дллку, ремот трид
- обертывать стандартный объект директинпута
3) Найти и активировать в реакцию
+ Ты просто говоришь игрухе чего делать не затрагивая мышь и т.п.
+ При прямых руках дллку и инжекцию можно и не делать (но гемороя будет не меньше SuspendThread+GetThreadContext)
- Надо знать где и чего активировать
4) Использовать UniMod
+ Привязан только к ноксу
+ Геморой минимален
- Его нужно установить
- Не факт что там выведена нужная тебе кнопка, но наверняка
- надо ботать луа, либо договариватся чтобы было апи для сторонних программ (хотябы WM_COPYDATA)