Abrindo e fechando uma página web com o Delphi

É possível executar um browser com WinExec ou ShellExecute para abrir uma página web, mas o que eu vou mostrar aqui é como usar um objeto OLE para criar uma instância de um IE, abrindo ele na página desejada e depois fechando.

Isso pode ser aplicado, por exemplo, em totens ou lan houses onde o acesso ao browser e suas funções, ou até mesmo o acesso a páginas é restrito.

Para isso vamos usar um vetor de 10 posições de variant, mas você pode usar uma lista ou pilha, fique a vontade para usar a imaginação. Esse vetor será responsável por controlar as instâncias do IE abertas e executar operações sobre elas. Você pode fechar na ordem que foi aberto, fechar pelo índice ou fechar todas varrendo o vetor, quando esgotar o tempo do usuário, por exemplo.

Coloque em um formulário um edit (para digitação da url) e dois botões. O código ficará assim:

unit abreFecha;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Comobj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    IEapp : array[0..9] of variant;
    fIndice : integer;
  public

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if fIndice > 9 then
    exit;
  IEApp[findice] := CreateOLEObject('InternetExplorer.Application');
  IEApp[findice].visible := true;
  IEApp[findice].Top := 0;
  IEApp[findice].Left := 0;
  IEApp[findice].width := screen.width;
  IEApp[findice].height := screen.height;
  IEApp[findice].Navigate(edit1.Text);
  inc(fIndice);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if fIndice = 0 then exit;
  IEApp[findice-1].Quit;
  dec(fIndice);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  fIndice := 0;
end;

end.


Até a próxima dica básica de Delphi ;)

Comentários

Postagens mais visitadas deste blog

Detectar o encoding de um arquivo para não corromper ao transformá-lo

erro "ora-12154: tns: não foi possível resolver o identificador de conexão especificado"

Quebras de linha no Delphi 2010