procedure TForm1.Timer1Timer(Sender: TObject);
var
ShellWindow: IShellWindows;
WB: IWebbrowser2;
spDisp: IDispatch;
IDoc1: IHTMLDocument2;
Document: Variant;
k, m: Integer;
ovElements: OleVariant;
i: Integer;
begin
Timer1.Enabled:=false;
ShellWindow := CoShellWindows.Create;
// get the running instance of Internet Explorer
for k := 0 to ShellWindow.Count do
begin
spDisp := ShellWindow.Item(k);
if spDisp = nil then Continue;
// QueryInterface determines if an interface can be used with an object
spDisp.QueryInterface(iWebBrowser2, WB);
if WB <> nil then
begin
WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
if iDoc1 <> nil then
begin
WB := ShellWindow.Item(k) as IWebbrowser2;
begin
Document := WB.Document;
// count forms on document and iterate through its forms
for m := 0 to Document.forms.Length - 1 do
begin
ovElements := Document.forms.Item(m).elements;
// iterate through elements
for i := 0 to ovElements.Length - 1 do
begin
// when input fieldname is found, try to fill out
try
if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and
(CompareText(ovElements.item(i).type, 'password') = 0) then
begin
ovElements.item(i).Value := 'Koden';
end;
except
end;
// when Submit button is found, try to click
try
if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and
(CompareText(ovElements.item(i).type, 'SUBMIT') = 0) and
(ovElements.item(i).Value = 'Log på') then // Suchen für German
begin
ovElements.item(i).Click;
end;
except
end;
end;
end;
end;
end;
end;
end;
Close;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
ShellExecute(ValidParentForm(Self).Handle, 'open','http://www.campusnet.dtu.dk', nil, nil, SW_SHOW);;
Timer1.Enabled:=true;
end;
Her er den så, den kræver lidt for at kunne bruges, man skal bla kigge i ktml-koden på den side du skal logge dig ind på.
Har lavet det sådan at når man kører programet, loader den siden ind og sætter timeren igang, efter 3 sek prøver den så at skrive koden i dokumentet. Det er en farlig metode, men den virker PT.
T dér