我想编写一段程序下在特定网页中的多个连接的文件,就像netants那样,不要多强大的功能,只要能自动完成“目标另存为”的功能即可,但要重复多次。
    我不知道该用到那些空间及其相应的属性设置和方法,请诸位好心人多多帮助,谢谢!!!

解决方案 »

  1.   

    直接利用相关COM接口!链接就是DHTML模型里面的元素!利用IHTMLLinkElement接口!找份以前的贴子:
    http://expert.csdn.net/Expert/topic/1204/1204088.xml
      

  2.   

    如果也想像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;