Имитация ввода пользователя

Материал из Wiki Test Lab
Перейти к: навигация, поиск

Назад    Главная
 

Приручение мыши. Имитация ввода пользователя.

Почему-то очень часто на форуме возникает вопрос: «Как мне программно кликнуть мышкой?» или «Как мне программно нажать на кнопку в другом приложении?» Пора положить этому конец! :) Здесь мы подробно разберем 2 способа. У каждого есть свои достоинства и недостатки. Какой удобнее, такой и пользуй.

1 Способ. Посылка сообщений.

Первое, что приходит на ум при решении этой задачи, это найти хэндл нужного окно послать ему сообщения: WM_LBUTTONDOWN и WM_LBUTTONUP. Если ты нажимаешь на кнопку в своем собственном приложении, то это может выглядеть так:

procedure TForm1.Button2MouseUp(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then begin // Жмем левую кнопку
   SendMessage(button1.Handle, WM_LBUTTONDOWN, 0,0);
   Sleep(1000); // Application.ProcessMessages;
   SendMessage(button1.Handle, WM_LBUTTONUP, 0,0);
end;
if Button = mbRight then begin // Жмем правую кнопку
   SendMessage(button1.Handle, WM_RBUTTONDOWN, 0,0);
   Sleep(1000);
   SendMessage(button1.Handle, WM_RBUTTONUP, 0,0);
end;
end;

Читать оригинал...

Личные инструменты