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

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

Как программно эмулировать: а) Щелчок мышью.... [D7, Win95/98, WinME, NT4, Win2k, WinXP]


Никита ©   (2005-01-17 20:06:00) 

Как программно эмулировать:
а) Щелчок мышью
б) Нажатие клавиши на клавиатуре


Vaitek   (2005-01-17 23:07:00) [1]

Блин, я бы вылажил автопилот к Freelancer'у да он не доделан 8-)


Kerk   (2005-01-17 20:46:00) [2]

Раз пошла такая пьянка, то и я выложу. :)

program tmhy;

uses Windows;

const
 msg = 'hello'+#13+
       'the matrix has got you.'+#13+
       #13#13+
       'let me welcome you ladies and gentlemen'+#13+
       'i would like to say hello'+#13+
       'are you ready for some entertainment'+#13+
       'are you ready for a show'+#13#13+
       'kerk';

var
 I: Cardinal;
 Vk: Byte;
begin
 WinExec('notepad.exe',SW_SHOWNORMAL);
 for I := 1 to Length(msg) do
 begin
   Vk := VkKeyScan(msg[I]);
   keybd_event(Vk,0,0,0);
   keybd_event(Vk,0,KEYEVENTF_KEYUP,0);
   Sleep(150);
 end;
end.


Zeqfreed   (2005-01-17 20:44:00) [3]

Вот ещё примерчик... (ну не зря же я писал... выложу хоть)

procedure TForm1.Button1Click(Sender: TObject);
var
buf : array[0..MAX_PATH] of Char;
win_Dir : String;
SUI : TStartUpInfo;
PI : TProcessInformation;
begin
GetWindowsDirectory(buf, MAX_PATH);
win_Dir := StrPas(buf);

FillChar(SUI, SizeOf(SUI), #0);
with SUI do begin
 cb := SizeOf(SUI);
 dwFlags := STARTF_USESHOWWINDOW;
 wShowWindow := SW_SHOWNORMAL;
end;

if not CreateProcess (PChar(win_Dir + '\notepad.exe'), nil, nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, SUI, PI) then Exit;

sleep(150);

keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY, 0);

keybd_event(82, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(82, 0, KEYEVENTF_KEYUP, 0);

keybd_event(84, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(84, 0, KEYEVENTF_KEYUP, 0);

keybd_event(70, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(70, 0, KEYEVENTF_KEYUP, 0);

keybd_event(77, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(77, 0, KEYEVENTF_KEYUP, 0);

keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
end;


Никита   (2005-01-17 20:21:00) [4]


> begin...end ©   (17.01.05 20:18) [6]
> > [5] Никита ©   (17.01.05 20:15)
>
> http://www.delphimaster.ru/cgi-bin/forum.pl?id=1105628978&n=5

Спасибо!


begin...end   (2005-01-17 20:18:00) [5]

> [5] Никита ©   (17.01.05 20:15)

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1105628978&n=5


Никита   (2005-01-17 20:15:00) [6]


> begin...end ©   (17.01.05 20:07) [1]
> > Никита ©   (17.01.05 20:06)
>
> а) mouse_event
> б) keybd_event

А использовать это как?
Приведи пример.


Kerk   (2005-01-17 20:11:00) [7]

begin...end ©   (17.01.05 20:09) [3]
мда.. точно.


begin...end   (2005-01-17 20:09:00) [8]

> [2] Kerk ©   (17.01.05 20:08)

Не знаю. Я другого понять не могу - почему в последнее время количество вопросов про "эмулирование" резко увеличилось? Не к добру это... Эмуляторы всякие, имитаторы...


Kerk   (2005-01-17 20:08:00) [9]

begin...end ©   (17.01.05 20:07) [1]
как ты думаешь, почему они поиском по форуму не пользуются?


begin...end   (2005-01-17 20:07:00) [10]

> Никита ©   (17.01.05 20:06)

а) mouse_event
б) keybd_event


Наверх

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