İnternet Exp Resim Olarak Kaydetme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

İnternet Exp Resim Olarak Kaydetme

Mesaj gönderen fox »

iyi günler ben açılan internet explorer sayafasını resim olarak kaydetmek istiyorum ama ben bunu Twebbrowser la yapabiliyorum ama internet explorere erişim yapamıyorum

Form içinde kullandığım kayıt kodu :::

Kod: Tümünü seç

procedure TForm1.wbDocumentComplete(Sender:TObject; const pDisp:IDispatch; var URL:OleVariant);
var 
  pDoc:                        IHTMLDocument2; 
  pElement:                    IHTMLElement2; 
  x, y:                        Integer; 
begin
  if URL <> 'about:blank' then
  begin
   Image1.Picture.Bitmap.Assign(CreateScaledImage(WebBrowser1, 1.0));
   image1.Picture.SaveToFile('den.jpg');
    //Image1.Picture.Bitmap.Assign(CreateThumbnailImage(WebBrowser1,point(5,8)));
    Screen.Cursor := crDefault;
  end;
end; 




Açık olan siteleri bununla tesbit edebiliyorum ama resim olarak kaydetme işine gelince bağlantı kuramadım bunu nasıl yapabilirim?

Açıksite adresleri :KOD

Kod: Tümünü seç

unit Unit1;
  
interface 
  
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, MSHTML, StdCtrls, ExtCtrls, OleCtrls, SHDocVw, ComCtrls; 
  
type 
  TForm1 = class(TForm) 
    WebBrowser1: TWebBrowser;
    Edit1: TEdit;
    Button1: TButton; 
    Image1: TImage;
    Button2: TButton;
    Memo1: TMemo;
    procedure wbDocumentComplete(Sender: TObject; const pDisp: IDispatch;
      var URL: OleVariant); 
    procedure btnGetClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private 
    { Private declarations }
  public 
    { Public declarations } 
  end; 
  
var 
  Form1: TForm1; 
  
implementation 
  
uses WebUtils; 
  
{$R *.dfm} 
  
procedure TForm1.btnGetClick(Sender:TObject);
begin 
  Screen.Cursor := crHourGlass; 
  if Length(Trim(Edit1.Text)) > 0 then
  begin
    WebBrowser1.Navigate(Edit1.Text);
  end 
  else
    ShowMessage('URL can not be blank');
end;
  
procedure TForm1.wbDocumentComplete(Sender:TObject; const pDisp:IDispatch; var URL:OleVariant);
var 
  pDoc:                        IHTMLDocument2; 
  pElement:                    IHTMLElement2; 
  x, y:                        Integer; 
begin
  if URL <> 'about:blank' then
  begin
   Image1.Picture.Bitmap.Assign(CreateScaledImage(WebBrowser1, 1.0));
   image1.Picture.SaveToFile('den.jpg');
    //Image1.Picture.Bitmap.Assign(CreateThumbnailImage(WebBrowser1,point(5,8)));
    Screen.Cursor := crDefault;
  end;
end; 
  
procedure TForm1.FormCreate(Sender:TObject);
begin
  WebBrowser1.Navigate('about:blank');
end; 
  
procedure TForm1.Button2Click(Sender: TObject);
var
 ShellWindow: IShellWindows;
 WB: IWebbrowser2;
 spDisp: IDispatch;
 IDoc1: IHTMLDocument2;
 k: Integer;
begin
 ShellWindow := CoShellWindows.Create;
 // get the running instance of Internet Explorer
 for k := 0 to ShellWindow.Count do
 begin
   spDisp := ShellWindow.Item(k);
   if spDisp = nil then Continue;
   // QueryInterface determines if an interface can be used with an object
   spDisp.QueryInterface(iWebBrowser2, WB);
   if WB <> nil then
   begin
     WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
     if iDoc1 <> nil then
     begin
       WB := ShellWindow.Item(k) as IWebbrowser2;
       begin
         // Add HTML Code to Memo
         Memo1.Lines.Add(WB.LocationURL);
/////**********************************[b]Buraya eklememe yapmak istitorum[/b]
         Memo1.Lines.Add('****************************************');
         //GetHTMLCode(WB, Memo1.Lines);
       end;
     end;
   end;
 end;
end;

end.
xImage1.Picture.Bitmap.Assign(CreateScaledImage(WebBrowser1, 1.0));
image1.Picture.SaveToFile('den.jpg');
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

Re: İnternet Exp Resim Olarak Kaydetme

Mesaj gönderen fox »

Image1.Picture.Bitmap.Assign(CreateScaledImage(WebBrowser1, 1.0));
image1.Picture.SaveToFile('den.jpg');

webbrowser1 i wb yapınca

[Error] Unit1.pas(93): Incompatible types: 'TWebBrowser' and 'IWebBrowser2'

bunu nasıl aşabilirim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: İnternet Exp Resim Olarak Kaydetme

Mesaj gönderen mrmarman »

Basit çözüm, IE sayfasının LocationURL alıp TWebBrowser ile yeniden açtırıp öyle resmini almak. Belki bu senin işini görür de diğer çözüm için kafa yormaya gerek kalmaz. :wink: Diğer çözüm muhakkak mümkündür ama uygun bir zamanda çalışıp denemeden yorum yapamam. Neden böyle bir sonuca varıyorum dersen TWebBrowser da aslında bir IExplorer'ın MSHTML tarafından yansıması olduğunu bildiğimden.
Resim
Resim ....Resim
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

Re: İnternet Exp Resim Olarak Kaydetme

Mesaj gönderen fox »

Dediğiniz şeyi denedim ama bazı sitelerde giriş izni vermiyor mesela ben bu siteye girdim diyelim browser otomatik olarak anasayfaya gönderiyor. Genellikle login olan sitelerde problem çıkıyor. Başka bir yöntemle almam mümkünmüdür.
Cevapla