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

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

эмуляция нажатия клавиш в неактивном окне


KiberKot ©   (2008-01-10 05:52:00) 

тема уже была, но ее закрыли, так что спрошу еще раз
ка эмулировать нажатие клавиши в неактивном окне зная его
дескриптор (D3D Window)
насколько я понял SendMessage  не поможет
так же я нашел пример
procedure EmulateKey(Wnd: HWND; VKey: Integer);
asm
  push 0
  push edx
  push 0101H //WM_KEYUP
  push eax
  push 0
  push edx
  push 0100H //WM_KEYDOWN
  push eax
  call PostMessage
  call PostMessage
end;

// Пример использования:
EmulateKey(Edit1.Handle, VK_RETURN);

каторый так же никакого результата недал
ассемблера к сожалению незнаю


МистерТ   (2008-08-14 12:58:00) [1]

> KiberKot ©   (10.01.08 20:13) [3]
> D3D Window - игра RF Online

вероятнее всего там использован DirectInput, а это значит ни какими PostMessage/SendMessage и ассемблером клавишу не нажать. Только писать собственную оболочку над DI.
И вообще, во всех играх банят за ботописание :)


CAMOPKAH   (2008-08-13 23:34:00) [2]

В данном случае задержками :

 push 0
 push edx
 push 0101H //WM_KEYUP
 push eax
 push 500 //Задержка в ms
 push 0
 push edx
 push 0100H //WM_KEYDOWN
 push eax
 call PostMessage
 call Sleep
 call PostMessage


CAMOPKAH   (2008-08-13 23:33:00) [3]

В данном случае задержками :

 push 0
 push edx
 push 0101H //WM_KEYUP
 push eax
 push 500 //Задержка в ms
 push 0
 push edx
 push 0100H //WM_KEYDOWN
 push eax
 call PostMessage
 call Sleep
 call PostMessage


CAMOPKAH   (2008-08-13 23:33:00) [4]

В данном случае задержками :

 push 0
 push edx
 push 0101H //WM_KEYUP
 push eax
 push 500 //Задержка в ms
 push 0
 push edx
 push 0100H //WM_KEYDOWN
 push eax
 call PostMessage
 call Sleep
 call PostMessage


wispa   (2008-06-13 16:42:00) [5]

уменя твой верхний пример работает просто беда в том что он нажимает и отпускает(просто мгновенно,кстате почемуто два раза нажимает) и зажатие клавиши несмог реализовать(в асемблере тож нуль)


KiberKot   (2008-01-10 20:13:00) [6]

D3D Window - игра RF Online


Cj   (2008-01-10 06:28:00) [7]


> keybd_event

для активного конечно окна


Cj   (2008-01-10 06:18:00) [8]


> D3DWindow

это Direct 3D? если да, то никак, DirectX использует свои средства засекания клавиш, через свой(помоему) драйвер. Мне в таком случае помогала keybd_event


Наверх

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