Thema: Delphi Textbox ausfüllen

Einzelnen Beitrag anzeigen

DrRuediger

Registriert seit: 9. Sep 2008
Ort: Grabenstetten
4 Beiträge
 
Delphi 7 Professional
 
#7

Re: Textbox ausfüllen

  Alt 21. Jun 2009, 02:13
Falls es noch jemanden interessiert. Ich habe die Unit WbCtrl ( Button in TWebBrowser anklicken ... ) modifiziert:
Delphi-Quellcode:
function WbFindFieldByNameAndValue(WebBrowser: TWebBrowser; FieldName: string; var Field: TPoint): boolean;
var
  i, j: Integer;
  FormItem: Variant;
begin
  Result := False;
  //Hat das Dokument Forms? (Frames)
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then Exit;
  //Bearbeite alle Frames
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    // Bearbeite alle Felder eines Frames
    for j := 0 to FormItem.Length - 1 do
    begin
     { try}
        // Feldname wurde gefunden
        // gebe ihn zurück und ende
        if (FormItem.Item(j).name = FieldName)OR(FormItem.Item(j).value = FieldName) then
        begin
          Field.x := i; // Position speichern
          Field.Y := j;
          Result := True;
          exit;
        end;
      {except
        Exit;
      end;}

    end;
  end;
end {WbFindFieldByNameAndValue};
....
function WbBtnClick(WebBrowser: TWebBrowser; FieldName: string): Boolean;
var
  Field: TPoint;
begin
  // Position des Felds holen
  if not WbFindFieldByNameAndValue(WebBrowser, FieldName, Field) then
  begin
    Result := false; // Feld existiert nicht
    exit; // Ende
  end;
  try
    // CheckBox setzen
    WebBrowser.OleObject.Document.forms.Item(Field.x).Item(Field.y).Click;
    Result := True;
  except
    Result := false;
    Exit;
  end;
end;
Damit wird nach den Namen und Value des Tags gesucht. Der Value ist die Aufschrift des Buttons, z.B. "Login". Das geht, falls der Button nicht bloß Submit heißt (dann fehlt der Name und Value im Tag).
Zum Monitoren des Internetverkehrs nehme ich HttpAnalyzer, der kostet jedoch etwas, ist aber eine Profiversion, die ich empfehlen kann.

Jörg
  Mit Zitat antworten Zitat