2011-09-19 70 views

回答

8

下面是一個article它提供了一個例子:

uses ActiveX; 

procedure WebBrowserScreenShot(const wb: TWebBrowser; const fileName: TFileName) ; 
var 
    viewObject : IViewObject; 
    r : TRect; 
    bitmap : TBitmap; 
begin 
    if wb.Document <> nil then 
    begin 
    wb.Document.QueryInterface(IViewObject, viewObject) ; 
    if Assigned(viewObject) then 
    try 
     bitmap := TBitmap.Create; 
     try 
     r := Rect(0, 0, wb.Width, wb.Height) ; 

     bitmap.Height := wb.Height; 
     bitmap.Width := wb.Width; 

     viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0) ; 

     with TJPEGImage.Create do 
     try 
      Assign(bitmap) ; 
      SaveToFile(fileName) ; 
     finally 
      Free; 
     end; 
     finally 
     bitmap.Free; 
     end; 
    finally 
     viewObject._Release; 
    end; 
    end; 
end; 

,並使用這樣的:

procedure TForm1.FormCreate(Sender: TObject) ; 
begin 
    WebBrowser1.Navigate('http://delphi.about.com') ; 
end; 

procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant) ; 
begin 
    WebBrowserScreenShot(WebBrowser1,'c:\WebBrowserImage.jpg') ; 
end; 
+0

酷一段代碼!謝謝! –

相關問題