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