Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Editfelder im Internet Explorer finden (https://www.delphipraxis.net/106055-editfelder-im-internet-explorer-finden.html)

bitsetter 5. Jan 2008 11:02

Re: Editfelder im Internet Explorer finden
 
Zitat:

Zitat von Mazel
Doch, dies ist möglich. Du siehst auf dem Bild in meinem letzten Beitrag die grauen Editfelder. Das gehört zu einem Formular. Viel weiter unten, nicht auf dem Bild zu sehen, ist der Speichern Button.

Wo ist nun das Problem? Du müsstest doch jetzt auch die Eingabeliste auslesen and ausfüllen können und drückst dann per Code auf den Speicherbutton.
Die Eingabeliste können sicherlich nur registrierte Benutzer wie du bearbeiten.

Mazel 5. Jan 2008 11:13

Re: Editfelder im Internet Explorer finden
 
@RWarnecke:
Eine Datenbank ist es, aber ich habe kein direkten Zugriff auf die Daten. Desweiteren geht es ja nicht nur um mich sondern um weitere andere User die diese Listen einsehen können.

@bitsetter:
Genau so werde ich das machen. Nun habe ich aber noch nicht probieren können ob dein Code auch in Editfelder schreibt (siehe innerText) oder ob es nur mit TWebbrowser funktioniert.
Ich war der Meinung, dass du versuchen willst, die Ausgabeliste zu bearbeiten, die nicht gespeichert werden kann. Nur die Eingabeliste, die die Editfelder beinhaltet und die, wie du richtig erwähnt hast, nur Mitglieder des Forums bearbeiten können, kann ich auf dem Server per Button Klick speichern.

bitsetter 5. Jan 2008 11:27

Re: Editfelder im Internet Explorer finden
 
Mein Code lauft ohne den TWebbrowser du könntest dich auch in eine geöffnete Seite das IE einklinken.
Mit dem TWebbrowser müsste es auch gehen.
Zitat:

Zitat von Mazel
Nun habe ich aber noch nicht probieren können ob dein Code auch in Editfelder schreibt (siehe innerText) oder ob es nur mit TWebbrowser funktioniert.

Zitat:

Zitat von bitsetter
Die Tabelle ausfüllen jedenfalls lässt sich zumindest damit bei mir

Mit solch ähnlichen Code kann man auch Felder ausfüllen und sich aucheinloggen, also müsste es eigenlich auch gehen.
Zitat:

Zitat von Mazel
Ich war der Meinung, dass du versuchen willst, die Ausgabeliste zu bearbeiten, die nicht gespeichert werden kann. Nur die Eingabeliste, die die Editfelder beinhaltet und die, wie du richtig erwähnt hast, nur Mitglieder des Forums bearbeiten können, kann ich auf dem Server per Button Klick speichern.

Das habe ich jetzt schon verstanden, du musst dann eben die Eingabeliste bearbeiten, dafür musst du den Code sicherlich etwas abändern.

Mazel 5. Jan 2008 11:34

Re: Editfelder im Internet Explorer finden
 
Ja wird wohl nötig sein. Ich werde mir dein Code mal genau anschauen und dann vergleichen, welche Variante (deine oder TWebbrowser) am günstigsten ist. Zudem muss ich sagen, dass ich noch nie mit OleObjekten gearbeitet habe, muss mich damit auch mal auseinander setzen :wink:

Auf jedenfall danke ich dir für deine Hilfe und Mühe, bitsetter. :thumb:

Gruß
Mazel

bitsetter 5. Jan 2008 11:41

Re: Editfelder im Internet Explorer finden
 
Versuche es erst mal selbst, wenn gar nicht anders kannst du mir ja die Seite per PN zuschicken, dass hat DaniOne damals auch gemacht.

Mazel 5. Jan 2008 12:14

Re: Editfelder im Internet Explorer finden
 
Mit TWebbrowser habe ich, so denke ich, eine Lösung gefunden. Mich interessiert aber auch dein Weg, denn so würde es ohne der Komponente gehen. :zwinker:

Ich melde mich, falls noch weitere Fragen sind.

bitsetter 5. Jan 2008 16:33

Re: Editfelder im Internet Explorer finden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Mazel
Mit TWebbrowser habe ich, so denke ich, eine Lösung gefunden. Mich interessiert aber auch dein Weg, denn so würde es ohne der Komponente gehen. :zwinker:

Habe das Programm jetzt umgebaut, damit es funktioniert musst der IE mit der göffneten Seite Dublettenliste gestartet sein. Man könnte ansonsten, wenn der IE gerade eine andere Seite geladen hat, zu der besagten Seite navigieren. Ich habe wie schon gesagt nur den IE 6 hoffe mal, dass es trotzdem geht.

Mazel 5. Jan 2008 17:31

Re: Editfelder im Internet Explorer finden
 
Hey super. :thumb:

Jeder Beitrag ein Schritt weiter. Nun sind in dem Code für mich 2 neue weitere Unbekannte dabei (IShellWindows und IWebbrowser2), deren Aufgabe mir aber klar ist - das Finden der aktuellen URL.

Ich hatte mich vorhin auch schon mit "IE.all.tags" auseinander gesetzt. Ich habe, um die Editfelder zu finden den Code nun so abgeändert, dass die Editfelder übernommen werden.
Delphi-Quellcode:
procedure TMForm.BtnClick(Sender: TObject);
var
  i, l, TdCount   : integer;
  TableNode, TrNode: Variant;
  ListItem        : TListItem;
  ShellWin        : IShellWindows;
  loop            : Integer;
  wb              : IWebBrowser2;

begin
  ShellWin := CoShellWindows.Create;
  for loop := 0 to Pred(ShellWin.Count) do
  begin
    wb := ShellWin.Item(loop) as IWebBrowser2;
    if pos('briefmarken/forum/anlegen', wb.LocationURL)> 0 then
    begin
      ie := wb.Document;
      TableNode := IE.all.tags('form').Item(0);
      if TableNode.all.tags('input').Length > 0 then
      begin
        for i := 2 to TableNode.all.tags('input').Length - 1 do
        begin
          if (Pos('katalognr', TableNode.all.tags('input').Item(i).Name) <> 0) and (TableNode.all.tags('input').Item(i).Value <> '') then
          begin
            ListItem := Lv.Items.Add;
            ListItem.Caption := TableNode.all.tags('input').Item(i).Value;
            ListItem.SubItems.Add(TableNode.all.tags('input').Item(i + 1).Value);
            ListItem.SubItems.Add(TableNode.all.tags('input').Item(i + 2).Value);
          end;
        end;
      end;
      Break;
    end;
  end;
end;
Das funktioniert soweit recht gut. Jetzt nur noch ein wenig sortieren und wieder ausgeben.

Ich glaube, ich werde auf deinem Weg bleiben ;)

Nochmals recht vielen Dank.

Gruß
Mazel


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:36 Uhr.
Seite 2 von 2     12   

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