以下代码保存所有当前打开的网址:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, shellapi, ddeman, shdocvw,registry;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
procedure ListBox1DblClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
IEXPLORE:string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
WinExec(PChar(IEXPLORE+' "'+listbox1.items[listbox1.itemindex]+'"'),SW_NORMAL);
end;
procedure TForm1.Button1Click(Sender: TObject);
const
maxx = 30;
var
ShellWindow: IShellWindows;
nCount: integer;
spDisp: IDispatch;
i: integer;
vi: OleVariant;
IE1: IWebBrowser2;
begin
listbox1.clear;
ShellWindow := CoShellWindows.Create;
nCount := ShellWindow.Count;
for i := 0 to nCount - 1 do
begin
vi := i;
try
spDisp := ShellWindow.Item(vi);
except
exit
end;
if (spDisp <> nil) then
begin
try
spDisp.QueryInterface(iWebBrowser2, IE1);
except
on EAccessViolation do
begin
exit
end;
end;
if (IE1 <> nil) then
begin
listbox1.items.add(IE1.Get_LocationURL());
end;
end;
end;
deletefile(extractfilepath(paramstr(0)) + 'Address.d' + inttostr(maxx));
for i := maxx - 1 downto 0 do
renamefile(extractfilepath(paramstr(0)) + 'Address.d' + format('%.2d', ), 'Address.d' + format('%.2d', [i + 1]));
listbox1.items.savetofile(extractfilepath(paramstr(0)) + 'Address.d00');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
begin
for i := 0 to listbox1.items.count - 1 do
begin
WinExec(PChar(IEXPLORE+' "'+listbox1.items+'"'),SW_NORMAL);
end;
end;
procedure TForm1.FormShow(Sender: TObject);
var
s: string;
reg:TRegistry;
begin
s := extractfilepath(paramstr(0)) + 'Address.d00';
if fileexists(s) then
listbox1.items.loadfromfile(s);
reg:=TRegistry.create;
reg.rootkey:=HKEY_LOCAL_MACHINE;
reg.openkey('Software/Microsoft/Windows/CurrentVersion/App Paths/IEXPLORE.EXE',true);
IEXPLORE:=reg.ReadString('');
reg.closekey;
reg.free;
end;
end.