如果也想像flashget那样在ie的右键菜单中显示一个下载选项的话 到注册表的 \HKEY_CURRENT_USER\software\microsoft\Internet Explorer\MenuExt\ 看就知道是什么一回事啦 如果是自己写的程序用webbrowser想实现这种链接列表 //打开当前页面的所有链接 uses mshtml; procedure Tfrmhtmlbrowser.N2Click(Sender: TObject); var OpenAllLinkForm: TOpenAllLinkForm; Result: Integer; doc: IHTMLDocument2; all: IHTMLElementCollection; len, i: integer; item: OleVariant; wb: tembeddedwb; listitem: TListItem; // j:Integer; //iw: IWebBrowser2; begin WB := GetVisibleWebBrowser; OpenAllLinkForm := TOpenAllLinkForm.Create(Self); try {判断是否多frame ,有时会出错,取消这功能 if wb.FrameCount > 0 then for j := 0 to wb.framecount - 1 do begin iw := wb.GetFrame(j); doc := iw.Document as IHTMLDocument2; all := doc.Get_links; //doc.Links亦可 len := all.length; for i := 0 to len - 1 do begin item := all.item(i, varempty); //EmpryParam亦可 if EnableIgnoreList then if IgnoreList.IndexOf(item.href) = -1 then begin listitem := OpenAllLinkForm.ListView_link.Items.Add; listitem.Caption := item.href; listitem.SubItems.Add(item.innertext); end; end; end else } begin //这段就是取链接 doc := wb.Document as IHTMLDocument2; all := doc.Get_links; //doc.Links亦可 len := all.length; for i := 0 to len - 1 do begin item := all.item(i, varempty); //EmpryParam亦可 if EnableIgnoreList then if IgnoreList.IndexOf(item.href) = -1 then begin listitem := OpenAllLinkForm.ListView_link.Items.Add; listitem.Caption := item.href; listitem.SubItems.Add(item.innertext); end; end; //end for //取链接结束 //open openalllinkform Result := OpenAllLinkForm.Showmodal; if Result = mrOk then //打开链接 for i := 0 to OpenAllLinkForm.ListView_link.Items.Count - 1 do begin application.ProcessMessages; if OpenAllLinkForm.ListView_link.Items[i].Checked then if BackList.IndexOf(OpenAllLinkForm.Listview_link.Items[i].Caption) = -1 then newpages(OpenAllLinkForm.Listview_link.Items[i].Caption); end; end; finally OpenAllLinkForm.Free; end; end;
到注册表的
\HKEY_CURRENT_USER\software\microsoft\Internet Explorer\MenuExt\
看就知道是什么一回事啦
如果是自己写的程序用webbrowser想实现这种链接列表
//打开当前页面的所有链接
uses mshtml;
procedure Tfrmhtmlbrowser.N2Click(Sender: TObject);
var
OpenAllLinkForm: TOpenAllLinkForm;
Result: Integer;
doc: IHTMLDocument2;
all: IHTMLElementCollection;
len, i: integer;
item: OleVariant;
wb: tembeddedwb;
listitem: TListItem;
// j:Integer;
//iw: IWebBrowser2;
begin
WB := GetVisibleWebBrowser;
OpenAllLinkForm := TOpenAllLinkForm.Create(Self);
try
{判断是否多frame ,有时会出错,取消这功能
if wb.FrameCount > 0 then
for j := 0 to wb.framecount - 1 do
begin
iw := wb.GetFrame(j);
doc := iw.Document as IHTMLDocument2;
all := doc.Get_links; //doc.Links亦可
len := all.length;
for i := 0 to len - 1 do
begin
item := all.item(i, varempty); //EmpryParam亦可
if EnableIgnoreList then
if IgnoreList.IndexOf(item.href) = -1 then
begin
listitem := OpenAllLinkForm.ListView_link.Items.Add;
listitem.Caption := item.href;
listitem.SubItems.Add(item.innertext);
end;
end;
end
else
}
begin
//这段就是取链接
doc := wb.Document as IHTMLDocument2;
all := doc.Get_links; //doc.Links亦可
len := all.length;
for i := 0 to len - 1 do
begin
item := all.item(i, varempty); //EmpryParam亦可
if EnableIgnoreList then
if IgnoreList.IndexOf(item.href) = -1 then
begin
listitem := OpenAllLinkForm.ListView_link.Items.Add;
listitem.Caption := item.href;
listitem.SubItems.Add(item.innertext);
end;
end; //end for
//取链接结束
//open openalllinkform
Result := OpenAllLinkForm.Showmodal;
if Result = mrOk then //打开链接
for i := 0 to OpenAllLinkForm.ListView_link.Items.Count - 1 do
begin
application.ProcessMessages;
if OpenAllLinkForm.ListView_link.Items[i].Checked then
if BackList.IndexOf(OpenAllLinkForm.Listview_link.Items[i].Caption) = -1 then
newpages(OpenAllLinkForm.Listview_link.Items[i].Caption);
end;
end;
finally
OpenAllLinkForm.Free;
end;
end;