Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];

Вниз

Как сохранить содержимое окна IE   Найти похожие ветки 

 
Moisha   (2005-04-26 17:08) [0]

Уважаемые мастера, подскажите пожалуйста, как сохранить содержимое нужного окна IE (название окна известно)


 
easy ©   (2005-04-26 17:40) [1]

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, activex, mshtml, SHDocVw;
type
 TObjectFromLResult = function(LRESULT: lResult; const IID: TIID; WPARAM: wParam; out pObject): HRESULT; stdcall;
type
 TForm1 = class(TForm)
   Memo1: TMemo;
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
function GetIEFromHWND(WHandle: HWND; var IE: IWebbrowser2): HRESULT;
function WB_GetHTMLCode(WebBrowser: iwebbrowser2; ACode: TStrings): Boolean;
implementation
{$R *.dfm}
function GetIEFromHWND(WHandle: HWND; var IE: IWebbrowser2): HRESULT;
var
 hInst: HWND;
 lRes: Cardinal;
 MSG: Integer;
 pDoc: IHTMLDocument2;
 ObjectFromLresult: TObjectFromLresult;
begin
 hInst := LoadLibrary("Oleacc.dll");
 @ObjectFromLresult := GetProcAddress(hInst, "ObjectFromLresult");
 if @ObjectFromLresult <> nil then begin
   try
     MSG := RegisterWindowMessage("WM_HTML_GETOBJECT");
     SendMessageTimeOut(WHandle, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
     Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, pDoc);
     if Result = S_OK then
       (pDoc.parentWindow as IServiceprovider).QueryService(IWebbrowserApp, IWebbrowser2, IE);
   finally
     FreeLibrary(hInst);
   end;
 end;
end;
function WB_GetHTMLCode(WebBrowser: iwebbrowser2; ACode: TStrings): Boolean;
var
 ps: IPersistStreamInit;
 ss: TStringStream;
 sa: IStream;
 s: string;
begin
 ps := WebBrowser.Document as IPersistStreamInit;
 s := "";
 ss := TStringStream.Create(s);
 try
   sa := TStreamAdapter.Create(ss, soReference) as IStream;
   Result := Succeeded(ps.Save(sa, True));
   if Result then ACode.Add(ss.Datastring);
 finally
   ss.Free;
 end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
 Wnd: HWND;
 WndChild: HWND;
 IE: iwebbrowser2;
begin
 Wnd := FindWindow("IEFrame", "название окна");
 if Wnd = 0 then //No running instance of Internet Explorer so stop!
 begin
   showmessage(Not found.");
   exit;
 end;
// walk Shell DocObject View->Internet Explorer_Server
 WndChild := FindWindowEX(Wnd, 0, "Shell DocObject View", nil);
 if WndChild <> 0 then begin
   WndChild := FindWindowEX(WndChild, 0, "Internet Explorer_Server", nil);
   if WndChild <> 0 then
   begin
     GetIEFromHWnd(WndChild, IE); //Get Iwebbrowser2 from Handle
     memo1.Clear;
     WB_GetHTMLCode(IE, memo1.Lines);
   end;
 end;
end;
end.


 
Moisha   (2005-04-26 18:52) [2]

благодарю покорнейше


 
Moisha ©   (2005-04-26 19:17) [3]

Easy, будешь в Севасе с меня пиво


 
easy ©   (2005-04-26 23:22) [4]


> Moisha ©   (26.04.05 19:17) [3]

в обязательном порядке..



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
10-1098692190
WebErr
2004-10-25 12:16
2005.08.07
В Excel.Application NumericFormat у Range не устанавливается!!!


1-1103916043
VaR
2004-12-24 22:20
2005.08.07
Как изменить цвет кнопки


3-1120028216
WondeRu
2005-06-29 10:56
2005.08.07
Трудности перевода. BDE->ADO


3-1120214972
Dell3r
2005-07-01 14:49
2005.08.07
Like


14-1121535493
Piter
2005-07-16 21:38
2005.08.07
Помогите опознать фильм





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский