Einzelnen Beitrag anzeigen

Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#18

Re: Editfelder im Internet Explorer finden

  Alt 5. Jan 2008, 17:31
Hey super.

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
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat