News & Events
Como manipular as url’s visitadas no Internet Explorer
Manipular as url’s visitadas no Internet Explorer já foi tema de diversas discussões em fóruns que participei. A verdade é que fazer isso é simples demais e apenas com algumas entradas e leituras do Regedit (Editor de Registros do Windows) é possível fazer o controle total de tais url’s. Vejam como é fácil:
1. Crie uma aplicação como a Figura 1.
2. Neste form inclua 1 TListView, 1 TEdit, 3 TButtons, 1 Label.
3. Dê o nome ao TListView de LV.
4. No ListView configure a propriedade ViewStyle = vsReport.
5. No evento onCreate do form digite o seguinte código:
procedure TForm1.FormCreate(Sender: TObject); var I, Tam: Integer; C, V: string; N: TStringList; Lin: TListItem; Col: TListColumn; begin Form1.Left := 50; Form1.Top := 50; Col := Lv.Columns.Add; Col.Caption := 'Páginas visitadas'; Col.Width := 300; Registro := TRegIniFile.Create('HKEY_CURRENT_USER'); Registro.OpenKey('\Software\Microsoft\Internet Explorer', False); Page := Registro.ReadString('Main', 'Start Page', Page); N := TStringList.Create; Registro.ReadSection('TypedURLs', N); Edit1.Text := Page; for I := 0 to N.Count - 1 do begin C := N[I]; V := Registro.ReadString('TypedURLs', C, V); Lin := LV.Items.Add; Lin.Caption := V; end; if LV.Items.Count = 0 then begin Lin := LV.Items.Add; Lin.Caption := V; Lin.ImageIndex := 1; end; N.Free; Registro.Free; end;
Siga @tdevrocks no Twitter e fique por dentro de todas as atualizações do blog.
6. O código acima fará com que os itens visitados sejam listados no TListView.
7. Para deletar os itens selecionados no TListView digite o código abaixo em um novo botão. No meu caso estou usando um TPopupMenu.
procedure TForm1.aaaa1Click(Sender: TObject); var I, J: Integer; C, V: string; N: TStringList; Col: TListColumn; Lin: TListItem; begin if MessageDlg('Deseja as páginas selecinadas do histórico ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin Registro := TRegIniFile.Create('HKEY_CURRENT_USER'); Registro.OpenKey('\Software\Microsoft\Internet Explorer', False); N := TStringList.Create; Registro.ReadSection('TypedURLs', N); for J := 0 to LV.Items.Count - 1 do begin if Lv.Items[J].Selected then begin for I := 0 to N.Count - 1 do begin C := N[I]; V := Registro.ReadString('TypedURLs', C, V); if Lv.Items[J].Caption <> 'Nenhuma url encontrada' then if Lv.Items[J].Caption = V then Registro.DeleteKey('TypedURLs', C); end; end; end; N.Free; N := TStringList.Create; Registro.ReadSection('TypedURLs', N); Lv.Columns.Clear; Lv.Items.Clear; Col := Lv.Columns.Add; Col.Caption := 'Páginas visitadas'; Col.Width := 300; for I := 0 to N.Count - 1 do begin C := N[I]; V := Registro.ReadString('TypedURLs', C, V); Lin := LV.Items.Add; Lin.Caption := V; end; if LV.Items.Count = 0 then begin Lin := LV.Items.Add; Lin.Caption := 'Nenhuma url encontrada'; Lin.ImageIndex := 1; end; N.Free; Registro.Free; end; end;
8. Para gravar uma nova url no histórico digite o código abaixo em um novo botão.
procedure TForm1.Button1Click(Sender: TObject); begin Registro := TRegIniFile.Create('HKEY_CURRENT_USER'); Registro.OpenKey('\Software\Microsoft\Internet Explorer', False); Page := Edit1.Text; Registro.WriteString('Main', 'Start Page', Page); Registro.Free; end;
9. No código abaixo configuramos a página default do Internet Explorer como sendo em branco:
procedure TForm1.Button3Click(Sender: TObject); begin Registro := TRegIniFile.Create('HKEY_CURRENT_USER'); Registro.OpenKey('\Software\Microsoft\Internet Explorer', False); Edit1.Text := 'about:blank'; Registro.WriteString('Main', 'Start Page', Edit1.Text); Registro.Free; end;
Adriano Santos é especialista em linguagens de desenvolvimento, autor de diversos artigos e membro do Embarcadero Community Evanglist Program. Siga-o no twitter @asrsantos e fique por dentro de tudo que acontece nos bastidores de TDevRocks.
Author: Adriano Santos
2 Comentários
Comments are closed.
Opa, estava procurando uma rotina dessas já faz algum tempo.
só tive alguns problemas na hora utilizar esta sua, o delphi naum axou o comando ReadSection e deu que os parametros estavam errados no ReadString.
poderia me ajuda?
Olá, tentei executar o seu codigo mas não deu certo…apresentou varios erros por causa da variavel registro…a uses Windows não reconhece como sendo utilizada…
Eu fiz com D7 e não deu certo…
Vc poderia me ajudar….
Eu gostaria de capturar a url, data, hora e usuario que acessou….
Esse seu codigo so funciona para o IE….e no FIREFOX?
Obrigado