AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Browser "steuern" mit Lazarus
Thema durchsuchen
Ansicht
Themen-Optionen

Browser "steuern" mit Lazarus

Ein Thema von Glocke89 · begonnen am 3. Okt 2008 · letzter Beitrag vom 6. Okt 2008
 
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Browser "steuern" mit Lazarus

  Alt 3. Okt 2008, 13:23
Für den IE könnte ich dir mit folgendem helfen:

Delphi-Quellcode:
type
  TObjectFromLResult = function(LRESULT: lResult; const IID: TIID; wParam: wParam; out pObject): HRESULT; stdcall;

function TfrmMain.GetIEFromHWND(WHandle: HWND; var IE: IWebbrowser2): HRESULT;
var
  hInst: HWND;
  lRes: Cardinal;
  Msg: Integer;
  pDoc: IHTMLDocument2;
  ObjectFromLresult: TObjectFromLresult;
begin

  //OLE-DLL laden
  hInst := LoadLibrary('Oleacc.dll');
  @ObjectFromLresult := GetProcAddress(hInst, 'ObjectFromLresult');

  //geladen?
  if @ObjectFromLresult <> nil then
  begin

    try

      //Message-Handler
      Msg := RegisterWindowMessage('WM_HTML_GETOBJECT');
      SendMessageTimeOut(WHandle, Msg, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
      Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, pDoc);

      //Rückgabe
      if Result = S_OK then
        (pDoc.parentWindow as IServiceprovider).QueryService(IWebbrowserApp,
          IWebbrowser2, IE);

    finally

      //OLE-DLL entladen
      FreeLibrary(hInst);
    end;
  end;
end;

procedure Work(Sender: TObject);
var
  wndMain: hWnd;
  wndChild: hWnd;
  htmldDocument: IHtmlDocument2;
  iwbIE: IWebBrowser2;
  htmleBodyCode: IHTMLElement;
begin
  //IE suchen
  wndMain := FindWindow('IEFrame', nil);
  if wndMain <> 0 then
  begin

    //Tab suchen, welcher sich zur Zeit im Vordergrund befindet
    wndChild := FindWindowEx(wndMain, 0, 'TabWindowClass', nil);
    wndChild := FindWindowEx(wndChild, 0, 'Shell DocObject View', nil);
    wndChild := FindWindowEx(wndChild, 0, 'Internet Explorer_Server', nil);

    //Tab gefunden?
    if wndChild <> 0 then
    begin

      //IEInterface bekommen
      GetIEFromHWnd(WndChild, iwbIE);
      if iwbIE <> nil then
      begin

        //hier kannst du dann mit iwbIE arbeiten
      end;
    end;
  end;
end;
Angehängte Dateien
Dateityp: pas mshtml_tlb_104.pas (2,08 MB, 27x aufgerufen)
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz