Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вызвать программное нажатие клавиши в играх? [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо