Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Simular clique no Menu CSS num WebBrowser


LuloNet

Pergunta

3 respostass a esta questão

Posts Recomendados

  • 0
Aguém sabe que alguma função ou uma forma pela qual se possa simular um clique num Menu tipo CSS

num site carregado pelo componente WebBrowser ou EmbeddedWB.

Uma das formas seria atrvés de coordenadas ( posição x e y do mouse ) da janela onde esta o item que devera ser clicado

exemplo:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  OleCtrls, SHDocVw, StdCtrls;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    Button2: TButton;
    procedure WebBrowser1Enter(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure WebBrowser1DocumentComplete(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure MouseClickLeft(X, Y: Integer);
var Pt : TPoint;
begin
   Pt.X := X;
   Pt.Y := Y;
   Pt.x := Round(Pt.x * (65535 / Screen.Width));
   Pt.y := Round(Pt.y * (65535 / Screen.Height));
   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;

procedure TForm1.WebBrowser1Enter(Sender: TObject);
begin
   WebBrowser1.Navigate('http://www.autopecasxavier.com.br/');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   MouseClickLeft(100, 150); // coordenada da tela onde esta o item que quer clicar
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var Pt : TPoint;
begin
   Pt.X := 0;
   Pt.Y := 0;
   Pt := ClientToScreen(Pt);
   Pt.x := Round(Pt.x * (65535 / Screen.Width));
   Pt.y := Round(Pt.y * (65535 / Screen.Height));
   {Move o mouse}
   Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Pt.x, Pt.y, 0, 0);
   {Simula o pressionamento do botão esquerdo do mouse}
   Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Pt.x, Pt.y, 0, 0);
   {Simula soltando o botão esquerdo do mouse}
   Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Pt.x, Pt.y, 0, 0);
end;

end.

Neste caso eu coloquei um botão para voce poder testar o evento ... entretanto para obter a posição correta da posição do item na janela, a mesma deverá estar maximizada.

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...