Postagem em destaque

Huguinho e Zezinho surfando com granizo

Imagem
Certa vez, em outubro de 2023, Huguinho e seu amigo Zezinho foram surfar no final da tarde. O vento estava forte e a chuva, constante. Quando chegaram perto da praia, mal conseguiam segurar suas pranchas. O mar estava bem mexido, e ainda tiveram que andar cerca de 1 km até o pico. Quando estavam se aproximando, começou a cair granizo! Dava para ouvir claramente o barulho das pedras contra as pranchas. Eles se abrigaram embaixo do posto avançado dos salva-vidas, mas não adiantou muito. Ficaram olhando o mar — que estava bem agitado e quebrando bem longe — e perceberam que estava difícil passar a arrebentação. Como o granizo não parava, decidiram entrar assim mesmo. Logo que entraram no mar, o granizo cessou, mas aí começou o verdadeiro desafio: passar a arrebentação. Depois de levar várias séries na cabeça e quase sem forças, finalmente conseguiram. E começaram os raios! Quando estavam quase decidindo sair por causa deles, os raios pararam. Ufa! É algo estranho: você está lá, só você (c...

Como enviar um clique para outra aplicação, em Delphi

Vou mostrar aqui como enviar um clique do mouse para uma outra aplicação. Precisei disso para automatizar um processo, já o aplicativo em questão não tinha uma opção de linha de comando para já iniciar no item que eu desejava. Além disso, ele também não aceita o controle via teclado, apenas mouse.

program sendClick;

uses
  Windows, SysUtils, Classes, Controls, ExtCtrls, StdCtrls, Messages, Dialogs;

var
  WindowHandle : HWND;
  pt: TPoint;

begin
  if (paramstr(4) > '') then begin
    WindowHandle := FindWindow(nil, pchar(paramstr(4)));
      if WindowHandle = 0 then begin
      ShowMessage('Program not found.');
      halt;;
    end;
  end else
    WindowHandle :=  GetActiveWindow;

  pt.x := Round(strtoint(paramstr(2)) * (65535 / Screen.Width));
  pt.y := Round(strtoint(paramstr(3)) * (65535 / Screen.Height));

  Sleep(StrtoInt(paramstr(1)) * 1000);

  SetForegroundWindow(WindowHandle);
  Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, pt.x, pt.y, 0, 0);
  Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.x, pt.y, 0, 0);
  Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.x, pt.y, 0, 0);
end.

Comentários

  1. Este comentário foi removido pelo autor.

    ResponderExcluir
  2. O programa acima tem 4 parâmetros:
    1. Tempo de espera em segundos para aguardar (se ão for necessário informar 0);
    2. Posição horizontal da tela, em pixels;
    3. Posição vertical da tela, em pixels;
    4. O nome do programa alvo. Por exemplo: Calculadora

    ResponderExcluir
    Respostas
    1. Vlw, funcionou aqui, muito obrigado!

      Excluir
    2. Por acaso, você saberia como faço para enviar caracteres para outra aplicação, para por ex preenchimento automatico de informações?

      Excluir
    3. Tente a função SendMessage. http://stackoverflow.com/questions/3539190/windows-api-and-sendmessage

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

Google Hacking

Netflix não mostra ícone de streaming

Radar no KM 175 da BR101