打印本文 打印本文 关闭窗口 关闭窗口
谈Delphi 下Internet 编程技巧(二)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2868  更新时间:2009/4/23 18:38:26  文章录入:mintao  责任编辑:mintao
;  [''''{AFA0DC11-C313-11D0-831A-00C04FD5AE38}'''']

    function AddUrlAndNotify(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer;

      fWriteHistory: Integer; var poctNotify: Pointer;

      const punkISFolder: IUnknown): HResult; stdcall;

    function ClearHistory: HResult; stdcall;

  end;

 

function ClearIEHistory:integer;

const

    CLSID_CUrlHistory: TGUID = ''''{3C374A40-BAE4-11CF-BF7D-00AA006946EE}'''';

var

  IEHistory:IUrlHistoryStg2;

begin

  IEHistory:=CreateComObject(CLSID_CUrlHistory) as IUrlHistoryStg2;

  IEHistory.ClearHistory;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  ClearIEHistory;

end;

 

 

 

3.添加到收藏夹和整理收藏夹

 

const

CLSID_ShellUIHelper: TGUID = ''''{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}'''';

 var

p:procedure(Handle: THandle; Path: PChar); stdcall;

procedure TForm1.OrganizeFavorite(Sender: Tobject);

    var

     H: HWnd;

    begin

     H := LoadLibrary(PChar(''''shdocvw.dll''''));

     if H <> 0 then

     begin

    p := GetProcAddress(H, PChar(''''DoOrganizeFavDlg''''));

      if Assigned(p) then p(Application.Handle, PChar(FavFolder));

     end;

     FreeLibrary(h);

    end;

    

    procedure TForm1.AddFavorite(Sender: TObject);

    var

     ShellUIHelper: ISHellUIHelper;

     url, title: Olevariant;

    begin

     Title := Webbrowser1.LocationName;

     Url := Webbrowser1.LocationUrl;

     if Url <> '''''''' then

     begin

      ShellUIHelper := CreateComObject(CLSID_SHELLUIHELPER) as IShellUIHelper;

      ShellUIHelper.AddFavorite(url, title);

     end;

    end;

 

4.直接从TWebBrowser得到网页源码及Html

 

Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterHtml);

 

如果,用TWebBrowser浏览HTML文件的时候要将其保存为文本文件就很简单了,


 Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterText);

 

5.获取IE地址栏的handle

var

  Form1: TForm1;

 

implementation

 

{$R *.DFM}

Function GetURL(H:hwnd;lparam:longint):boolean;stdcall;

var str,url:array [0..254] of char;

  begin

    getclassname(h,@str,255);

    if strpas(@str)=''''ComboBoxEx32'''' then // ComboBoxEx32可以改成Edit.

      begin

      SendMessage(h,WM_GETTEXT,255,LongInt(@url));

      SendMessage(h,WM_SETTEXT,255,longint(pchar(''''http://www.sina.com.cn'''')));

      Sendmessage(h,WM_KEYDOWN,VK_Return,1);

      form1.ListBox1.Items.Add(strpas(@url));

      end;

      result:=true;

  end;

function callbackproc(H:HWnd;lparam:longint):Boolean;stdcall;

var str:array [1..255] of char;

  begin

  getclassname(h,@str,255);

  if ((strpas(@str)=''''CabinetWClass'''') or (strpas(@str)=''''IEFrame'''')) then

      begin

        Enumchildwindows(h,@GetURL,0);

      end;

      result:=true;

  end;

上一页  [1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口