ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Проблема с эмуляцией нажатия клавиш
  #1  
Старый 01.11.2009, 23:47
Markus_13
Познающий
Регистрация: 19.02.2009
Сообщений: 83
Провел на форуме:
181715

Репутация: 50
Отправить сообщение для Markus_13 с помощью ICQ
Question Проблема с эмуляцией нажатия клавиш

Нужно эмулировать нажатия клавиш в игре, но никак не получается
пробовал keybd_event и PostMessage (посылка сообщений окну WM_KEYDOWN)
кто подскажет как реализовать - можно как-нибудь эмулировать на уровне драйвера?
З.Ы. вместе с игрой стартует GameGuard (драйвер) - есть подозрение что он может мешает но без него игра не запускается...
 
Ответить с цитированием

  #2  
Старый 01.11.2009, 23:51
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Может шлешь неправильно?
Цитата:
Эмуляция нажатия клавиш производилась с помощью функции SendInput. Отмечу, что для того, чтобы ввод работал и в приложениях DirectX, которые используют DirectInput, необходимо отсылать не виртуальные коды клавиш, а скан-коды. Чтобы получить скан-код клавиши по виртуальному коду, необходимо воспользоваться функцией MapVirtualKey.
Есть еще функция keybd_event для эмуляции ввода с клавиатуры, но она устаревшая и является просто переходником к SendInput.
(c) d_x
 
Ответить с цитированием

  #3  
Старый 02.11.2009, 00:05
Markus_13
Познающий
Регистрация: 19.02.2009
Сообщений: 83
Провел на форуме:
181715

Репутация: 50
Отправить сообщение для Markus_13 с помощью ICQ
Post

текущий код:
раньше было с keybd_event
Код:
procedure KeyD(key:byte;lp:integer=0);begin PostMessage(a,$0100,key,lp);end;
procedure KeyU(key:byte;lp:integer=0);begin PostMessage(a,$0101,key,lp);end;
...
lpCtrl1:=MapVirtualKey(17,0) shl 16 or 1 ;
lpV1:=MapVirtualKey(ord('V'),0) shl 16 or 1 ;
lpV2:=1 shl 31 or 1 shl 30 or MapVirtualKey(ord('V'),0) shl 16 or 1 ;
lpCtrl2:=1 shl 31 or 1 shl 30 or MapVirtualKey(17,0) shl 16 or 1 ;
...
keyD(17,lpCtrl1);
keyD(17,lpV1);
keyU(17,lpV2);
keyU(17,lpCtrl2);
...
 
Ответить с цитированием

  #4  
Старый 02.11.2009, 03:48
Markus_13
Познающий
Регистрация: 19.02.2009
Сообщений: 83
Провел на форуме:
181715

Репутация: 50
Отправить сообщение для Markus_13 с помощью ICQ
По умолчанию

ну, неужели никто не подскажет что не так?((
 
Ответить с цитированием

  #5  
Старый 02.12.2009, 01:53
Markus_13
Познающий
Регистрация: 19.02.2009
Сообщений: 83
Провел на форуме:
181715

Репутация: 50
Отправить сообщение для Markus_13 с помощью ICQ
Post

gisTy, если конструктивного ничего сказать не можешь \ не хочешь - лучше молчи =)

Проблема кстати попрежнему не решена, приоритет уже не тот - но всеже интересно в чем там дело
З.Ы. это не ла2 - это Aion
 
Ответить с цитированием

  #6  
Старый 09.12.2009, 12:03
DeaD_MoroZ
Banned
Регистрация: 03.11.2009
Сообщений: 112
Провел на форуме:
98006

Репутация: 17
Отправить сообщение для DeaD_MoroZ с помощью ICQ
По умолчанию

 
Ответить с цитированием

  #7  
Старый 19.12.2009, 19:41
Markus_13
Познающий
Регистрация: 19.02.2009
Сообщений: 83
Провел на форуме:
181715

Репутация: 50
Отправить сообщение для Markus_13 с помощью ICQ
Talking

2 DeaD_MoroZ
Цитата:
вот почитай
почитал.
Цитата:
Спасибо. Но я сделал по своему, и у меня один вопрос:как сделать что бы полностью заблокировать функцию кнопки(программа при нажатии home печатает "привет" и при повторном переходит в начало строки и опять печатает "привет")
Мож кому надо--> http://slil.ru/28295384 пароль:serega
Угу, скопипастил код (причем неразобравшись в нем) и пытаешься мне помочь - лучше бы себе помог))
хотя конечн желание помочь очень похвально
в твоем (или чужом) коде юзается keybd_event (юнит sendkeys), а как ты можешь прочитать выше, я уже пробовал этот вариант
З.З.Ы. а насчет "как сделать что бы полностью заблокировать функцию кнопки" - легко, если ты понимешь код, а конкретно нужно добавить строку
Код:
if wparam=vk_home then exit else
перед строкой
Код:
Result:=CallNextHookEx(HookHandle, code, WParam, LParam);
после этого нажатие хоума обрабатываться не будет, а будут только слаться твои клавиши "GHBDTN"
З.З.З.Ы. код вообще лажовый - много мусора и абсолютно бесполезного кода, а уж res-файл в 260кб и dfm в 500 с лишним (причем все это из-за иконки)) - это вообще айс

Последний раз редактировалось Markus_13; 19.12.2009 в 19:44..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с дедиками [help!] Sniper482 Безопасность 4 14.09.2009 21:22
Имитатор нажатия клавиш djdelok Soft - Windows 2 20.08.2009 20:47
Power-Line Exploit регистрирует нажатия клавиш при помощи розеток и лазеров Glynec Мировые новости 14 15.07.2009 14:40
Непонятная проблема с интернетом по всей локалке ZneP Администрирование 6 19.06.2009 15:27
Посылка нажатия клавиш в игру Mirovan С/С++, C#, Delphi, .NET, Asm 8 12.12.2008 11:51



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ