![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вызвать программное нажатие клавиши в играх? [D6, XP]
Danco © (2008-06-06 16:55:00)Подскажите пожалуйста, как вызвать программное нажатие клавиши в играх?
Допустим нужно нажать стрелку вверх:
keybd_event(VK_UP, 0, 0, 0);
keybd_event(VK_UP, 0, KEYEVENTF_KEYUP, 0);
Выше приведенный код работает, но в игре не хочет, никаких действий не происходит.
Как обойти эту проблему и вообще возможно ли это? Заранее СПС!
Danco (2008-06-14 01:05:00) [1]
> Общего абстрактного решения нет. Для каждой игры - свое
> решение.
Вообще для каждой программы свое решение :)
Весь инет перекопал ничего не нашел. Плохо искал наверно. Допустим у этой игры есть окно, можно ли отыскать и нажать с помошью перехвата сообщения? И каким методом это делается? :)
Amoeba (2008-06-08 00:17:00) [2]
> Danco © (06.06.08 16:55)
>
> Подскажите пожалуйста, как вызвать программное нажатие клавиши
> в играх?
Общего абстрактного решения нет. Для каждой игры - свое решение.
Danco (2008-06-07 22:53:00) [3]
> Читаем и фкуриваем до полного просветления.
Спасибо за статью, почитал , но так ничего и не вкурил. Пробовал одни ошибки выскакивают.
Можно пожалуйста простой работающий пример:
procedure xxx();
begin
end;
Три дня мучаюсь, ответа найти никак не могу. =))
Renegat (2008-06-07 21:20:00) [4]http://www.wasm.ru/article.php?article=apihook_3
Читаем и фкуриваем до полного просветления.
Там в примере на холодный сброс ЦП есть строчкаOUT 64h, AL. Пишешь в AL любой байт - и передаётся нужный символ. Запомни одно: это не сам символ, а лишь его сканкод.
Danco (2008-06-07 21:11:00) [5]уфф.... оказывается не так все просто ...может кто нить написать пример? а то вообще не понимаю что куда? =(
Renegat (2008-06-07 19:42:00) [6]А если "вводить" напрямую в буфер клавиатуры (с помощью
OUT 64h)?
redlord (2008-06-07 19:13:00) [7]keybd_event
но боюсь она в приложениях opengl и directx не прокатит так как там нет окон.
тебе надо в драйвер устройств ввода значения посылать
SendInput
Danco (2008-06-07 17:30:00) [8]
> ZENsan © (06.06.08 18:44) [1]
>
> KeyboardEvent
Нет такой функции ...или я что то не так понял? =)
ZENsan (2008-06-06 18:44:00) [9]KeyboardEvent