Что нового

[Мышь, клавиатура] Тест программы захвата DirectInput

teges

Знающий
Сообщения
18
Репутация
16
Доработал старую программу по захвату DirectInput. Нужна помощь в тестировании.
Если в игре используется DirectInput, то AutoIT не сможет выполнить отправку клавиш в окно данной программы как в фоне, так и в активном состоянии.
Как использовать:
1. Редактируем файл runhook.bat:
Launcher.exe game.exe
Вместо game.exe - название игры к которой подключаемся. если в названии есть пробелы, то название в кавычках "my game.exe"
2. Копируем файлы программы в папку с игрой
3. Запускаем runhook.bat
4. Запускаем игру. Если игра использует DirectInput, состояние консоли изменится
5. Запускаем скрипт типа:
Код:
While 1
Sleep(200)
ControlSend("launcher", "", "", "b") ; Отправка через программу клавиши b в игру
WEnd


ВНИМАНИЕ! Сейчас в программе реализована отправка только 4 клавиш:
b, 1, 2, 3
 

lirikmel

Продвинутый
Сообщения
226
Репутация
84
очень полезная программа....с удовольствием приму участие в тестировании....правда я не встречал игр в которых не работала отправка в активное окно..
 

egosha1381

Новичок
Сообщения
1
Репутация
0
в игре D2X-XL http://dl.rutracker.org/forum/dl.php?t=264079
я пытался вставлять чит-коды с помощью программы sendkeys, но они не идут. нужен такой скрипт для AutoIt, чтобы игра понимала посылаемые клавиши.
Это windows-адаптация игры Descent-1 и 2. она есть на rutracker.org
я хочу чтобы нажатием незанятых в игре клавиш (1-9 на keypad) можно было быстро вбивать чит-коды при входе на новый уровень.
список чит-кодов http://www.descent2.de/index.html
 
Автор
T

teges

Знающий
Сообщения
18
Репутация
16
Если эта игра создает DirectInput устройство(в данном случае клавиатуру), то можно пользоваться этой программой. OpenGL, насколько я понимаю, не использует захват клавиатуры
Send() работает? Стандартная раскладка английская?

кстати, вот новая версия программы(исправления коснулись только клиентской части):
Отправляет:
A, S, D, W, X, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ESC
все клавиши идут без задержек, возможны комбинации

Установка как в 1 посте

Использовать так:
Код:
ControlSend("dinput8h.server", "", "", "{1}")
 

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Всё бы было лучше, если бы делалось не через хук к экзешнику, потому что большенство программ запускаются через лаунчер.
 
Автор
T

teges

Знающий
Сообщения
18
Репутация
16
Всё бы было лучше, если бы делалось не через хук к экзешнику, потому что большенство программ запускаются через лаунчер.
launcher не помеха, просто кидаем в папку с нужным *.exe и ждем его запуска
 
Автор
T

teges

Знающий
Сообщения
18
Репутация
16
скачай MSVCR100.dll и положи в папку с программой, должно помочь. Желательно от winXP
 

ZlojBoter

Новичок
Сообщения
55
Репутация
0
из описания выше абсолютно не понятно что нужно делать, и что на что менять. Подробное описание можно? Куда что класть и что на что менять, заменять ли родной файл лаунчер из первой версии например, и почему в функции присутствуют названия "launcher" и "dinput8h.server" ? во втором случае вообще предлагается я так понимаю это название заменить на родное? :stars:
 

lirikmel

Продвинутый
Сообщения
226
Репутация
84
жаль что автор запустил канеш такой проект...очень полезная штука будет скоро думаю ,...кстати никто не проверял для Аллодов такая штука прокатывает с нажатиями ? оО....давно борюсь с этой игрой...но FrontLine пока выигрывает
 
Автор
T

teges

Знающий
Сообщения
18
Репутация
16
Извиняюсь за некро-постинг, но я ничего не запускал. Просто интересующихся данным вопросом было довольно мало.
Добавил в приложение тестовую программу - Keyboard.exe и 2 dll разных версий dinputhook.
Подробности смотрим в hook.au3.
В текущий момент отправляет сочетания клавиш(любых DIK_*) только в активное окно, блокируя ввод с клавиатуры.
Отправка в неактивное окно была отключена, так как не видел смысла в этой функции без наличия эмуляции мыши.

_InjectModule() из этой темы http://autoit-script.ru/index.php?topic=6738.0
 
Верх