AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Wie Alle Links aus dem Aktiven IE Fenster auslesen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Alle Links aus dem Aktiven IE Fenster auslesen?

Ein Thema von jonny · begonnen am 15. Apr 2004 · letzter Beitrag vom 15. Apr 2004
Antwort Antwort
jonny

Registriert seit: 15. Dez 2003
235 Beiträge
 
Delphi 7 Enterprise
 
#1

Wie Alle Links aus dem Aktiven IE Fenster auslesen?

  Alt 15. Apr 2004, 13:30
Ich hab hier mal ein Procedure mit der ich Alle Links aus dem zuletzt geöffneten IE Fenster bekommen kann, kann mir einer verraten wie ich die Links aus dem zuletzt aktiven und nicht zuletzt geöffneten IE Fenster bekomme?

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  u : variant;
  v : IDispatch;
  s : string;
  ShellWindow: IShellWindows;
  WB: IWebbrowser2;
  spDisp: IDispatch;
  IDoc1: IHTMLDocument2;
  k: Integer;

  procedure RecurseLinks(htmlDoc: variant);
  var
    BodyElement : variant;
    ElementCo: variant;
    HTMLFrames: variant;
    HTMLWnd : variant;
    j, i : integer;
  begin
    try
      if VarIsEmpty(htmlDoc) then
        exit;
      BodyElement := htmlDoc.body;
      if BodyElement.tagName = 'BODYthen
      begin
        ElementCo := htmlDoc.links;
        j := ElementCo.Length - 1;
        for i := 0 to j do
        begin
          u := ElementCo.item(i);
          s := u.href;
          If ((Copy(s, 1, 7) = 'http://') or (Copy(s, 1, 6) = 'ftp://'))
             and (S[Length(S)] <> '/') Then
            listLinks.Items.Add(s);
        end;
      end;
      HTMLFrames := htmlDoc.Frames;
      j := HTMLFrames.length - 1;
      for i := 0 to j do
      begin
        HTMLWnd := HTMLFrames.Item(i);
        RecurseLinks(HTMLWnd.Document);
      end;
    except
    end;
  end; // RecurseLinks

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
         v := WB.Document;
         listLinks.Clear;
         RecurseLinks(v);
       end;
     end;
   end;
 end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Wie Alle Links aus dem Aktiven IE Fenster auslesen?

  Alt 15. Apr 2004, 16:49
Hi,

Das könnte ein wenig schwierig werden.
Nehmen wir mal an, jemand hat mehrere IE Instanzen gestartet,
wechselt dann z.B zur Instanz, welche zuerst geöffnet wurde und wechselt dann ins Winword.
Nun möchtest du deinen Code ausführen. Das aktive Fenster ist Winword.

Vielleicht müsstest du die "Alt+Tab"-Reihenfolge herauskriegen.
Thomas
  Mit Zitat antworten Zitat
jonny

Registriert seit: 15. Dez 2003
235 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Wie Alle Links aus dem Aktiven IE Fenster auslesen?

  Alt 15. Apr 2004, 17:09
Mann muss doch irgendwie alle anwendungen die gestartet sind so auslesen können wie sie aktiviert wurden, oder?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Wie Alle Links aus dem Aktiven IE Fenster auslesen?

  Alt 15. Apr 2004, 17:21
Die Alt-Tab Reihenfolge wird glaub nach dem Z-Order bestimmt.
Vielleicht kannst du GetNextWindow() + GW_HWNDPREV solange aufrufen, bis
die letzt aktive IE Instanz kommt.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz