Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi IE: Felder ausfüllen (https://www.delphipraxis.net/4948-ie-felder-ausfuellen.html)

synex 17. Mai 2003 21:27


IE: Felder ausfüllen
 
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.

toms 17. Mai 2003 23: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;

synex 18. Mai 2003 09: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?

Stanlay Hanks 18. Mai 2003 09:53

weiß zwar nicht ob das was damit zu tun hat, aber vielleicht musst du noch irgend ne Unit einbinden

toms 18. Mai 2003 13: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.

synex 18. Mai 2003 21: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 :x

toms 18. Mai 2003 23:10

Kopiere die Datei mal in das Verzeichnis, wo deine Projekte Dateien sind.
Ansonsten muss die Datei über das Suchpfad auffindbar sein.

synex 20. Mai 2003 15:19

sorry aber das Kopieren hat nix genützt :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 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