17 de jul. de 2012

Simular Mouse Click sem utilizar o mouse - Delphi 7

Abaixo uma function bem simples, que simula o pressionamento do botão esquerdo do mouse em certa posição da tela sem utilizar o mouse, ou seja o mouse fica livre para ser utilizado enquanto a aplicação executa a função.

Procedure SendMouseClick(x,y:Integer);

begin
h := FindWindow(nil, 'Janela que vai clicar');
SendMessage(h, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(x,y));
SendMessage(h, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(x,y));
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
SendMouseClick(764,366);
end;

Legenda:

Azul: Coordenadas que vai executar o click.

Vermelho: Janela que vai clicar.

2 comentários:

  1. Eu não consigo fazer funcionar o sendMessage com a coordenada.

    procedure TForm2.Button1Click(Sender: TObject);
    var
    teste: HWND;
    begin
    teste:= FindWindow('Notepad',nil);
    if teste <> 0 then
    SendMessage(teste, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(p.x,p.y));
    SendMessage(teste, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(p.x,p.y));
    end;

    ResponderExcluir