AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IE: Felder ausfüllen

Ein Thema von synex · begonnen am 17. Mai 2003 · letzter Beitrag vom 20. Mai 2003
Antwort Antwort
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#1

IE: Felder ausfüllen

  Alt 17. Mai 2003, 22:27
Ich will folgendes machen:

Mein Programm soll die laufenden IE-Instanzen auflisten, man kann eine davon auswählen und dort dann Felder ausfüllen (vorher definiert welche das sind), wie z.B. das Suchen-Feld hier bei DP.
Mein erstes Problem ist, dass ich nicht weiß, wie ich alle laufenden IE-Instanzen aufliste . Das mit den Feldern ausfüllen habe ich schon hinbekommen, allerdings nur im WebBrowser von meiner eigenen Anwendung. Die Felder sollen allerdings im IE-Fenster ausgefüllt werden.

Für jede Anregung bin ich dankbar.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2
  Alt 18. Mai 2003, 00:28
Zitat:
Mein Programm soll die laufenden IE-Instanzen auflisten
Kannst du über IShellWindows. Siehe .hier

Hier noch ein Codeschnippsel, welcher alle laufenden IE Instanzen
auflistet und dann über das IWebbrowser2 Interface die Items
eines Dokumentes auflistet, usw.

Code:
var
  ShellWindow: IShellWindows;
  WB: IWebbrowser2;
  spDisp: IDispatch;
  IDoc1: IHTMLDocument2;
  Document: Variant;
  i, k, m: Integer;
  ovElements: OleVariant;
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;
        Document := WB.Document;
          for m := 0 to Document.forms.Length - 1 do
          begin
            ovElements := Document.forms.Item(m).elements;

            // iterate through elements
            for i := ovElements.Length - 1 downto 0 do
            begin
              try
              // if input fields found, try to fill them out
                if (ovElements.item(i).tagName = ...
                  (ovElements.item(i).type = ...
                  begin
                 
                    // ...
                  end;
              except
                // failed...
              end;
            end; { for i...}
          end; { for m }
      end; { idoc <> nil }
    end; { wb <> nil }
    // ...
  end; { for k }
end;
Thomas
  Mit Zitat antworten Zitat
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#3
  Alt 18. Mai 2003, 10:19
Danke erstmal für diene Antwort!

Allerdings kommt bei mir der Fehler, dass er IShellWindwos nicht kennt, was muss ich tun dass das verschwindet?

Zu dem bei deinem Link angegeben Code: Er findet bei mir die unit MSHTML_TLB nicht, wo bekomm ich die her?
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#4
  Alt 18. Mai 2003, 10:53
weiß zwar nicht ob das was damit zu tun hat, aber vielleicht musst du noch irgend ne Unit einbinden
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5
  Alt 18. Mai 2003, 14:52
Zitat:
Er findet bei mir die unit MSHTML_TLB nicht, wo bekomm ich die her?
Importieren aus der "Microsoft HTML Object Library"

Eine Anleitung gibt's hier.
Thomas
  Mit Zitat antworten Zitat
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#6
  Alt 18. Mai 2003, 22:32
OK entweder stell ich mich grad völlig dumm an oder was weis ich.
Ich kriegs einfach nicht installiert. Ich habe mir diese Anleitung durchgelesen, alles genau so befolgt aber nix!

Ich mach Import Type Library und nehm da MS HTML Object Library. Dann Create Unit und dann hab ich ne 11mb große .pas-Datei. Wie krieg ich die jetzt aber in mein Projekt? Der will eine .dcu-Datei.

Also sorry wenn das nur ein völlig dämliches problem ist, aber ich kriegs einfach nicht hin
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7
  Alt 19. Mai 2003, 00:10
Kopiere die Datei mal in das Verzeichnis, wo deine Projekte Dateien sind.
Ansonsten muss die Datei über das Suchpfad auffindbar sein.
Thomas
  Mit Zitat antworten Zitat
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#8
  Alt 20. Mai 2003, 16:19
sorry aber das Kopieren hat nix genützt
  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 14:35 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