Resio sam svoje probleme sa sledece dve funkcije (i zahvalan sam banciki na gornjoj funkciji puno):
Popunjavanje:
Code:
function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
i, j: Integer;
FormItem: Variant;
begin
Result := False;
if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then Exit;
for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
begin
FormItem := WebBrowser.OleObject.Document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do
begin
if (UpperCase(FormItem.Item(j).Type) = 'TEXT') or (UpperCase(FormItem.Item(j).Type) = 'TEXTAREA') or (UpperCase(FormItem.Item(j).Type) = 'PASSWORD') then
begin
FormItem.Item(j).Value := Value;
Result := True;
end;
end;
end;
end;
Submitovanje:
Code:
function SubmitForm(WebBrowser: TWebBrowser): Boolean;
var
i, j: Integer;
FormItem: Variant;
begin
Result := False;
if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then Exit;
for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
begin
FormItem := WebBrowser.OleObject.Document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do
begin
if (UpperCase(FormItem.Item(j).Type) = 'SUBMIT') then
begin
FormItem.Item(j).focus; //selektujemo taster
keybd_event( Ord(' '), MapvirtualKey( Ord(' '), 0), 0, 0 ); //"pritisnemo" space
keybd_event( Ord(' '), MapvirtualKey( Ord(' '), 0), KEYEVENTF_KEYUP, 0 ); //"otpustimo" space
Result := True;
end;
end;
end;
end;
p.s. ovo nece lepo da radi ako ima vise formi na stranici
p.p.s. u attachmentu poruke imate gotov demo (trebace Vam web server i php instalirani, s obzirom da sam radio u PHP-u)
irie