Einzelnen Beitrag anzeigen

Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#1

Webbrowser und login, post und popup

  Alt 29. Sep 2008, 18:48
Hallo
Ich bin mir nicht sicher wo ich ansetzen soll.
Ich möchte eigentlich mit meinem embedded webbrowser nur auf einer Steite surfen.
http://eurotort.org/
Wenn ich jetzt das Login rechts ausfülle, dann öffnet sich ein IE fenster und verlangt ein weiteres Login.
Mit IE selbst öffnet sich ein neues Fenster und man wird eingeloggt.

Mit dem MiniWebbrowser von Tom wird zwar ein weiterer Tab geöffnet, aber das Login erfolgt erst nach erneuter eingabe der Login Daten.

Hier was ich aus dem Forum bisher zusammengestöpselt habe:

Delphi-Quellcode:
// ausfüllen der Formulardaten
procedure WB_FillPwdForm(WB: TWebbrowser; UsernameField, User, PasswortField, Password: string);
var
  IDoc3: IHTMLDocument3;
  Inputs: IHTMLElementCollection;
  UID, UPWD: IHTMLElement;
begin
  if Assigned(WB.Document) and
    (Succeeded(WB.Document.QueryInterface(IHTMLDocument3, IDoc3))) then
  begin
    Inputs := IDoc3.getElementsByName(UsernameField);
    if Assigned(Inputs) then
    begin
      UID := Inputs.item(0, '') as IHTMLElement;
      if Assigned(UID) then
        (UID as IHTMLInputElement).value := User;
    end;
    Inputs := IDoc3.getElementsByName(PasswortField);
    if Assigned(Inputs) then
    begin
      UPWD := Inputs.item(0, '') as IHTMLElement;
      if Assigned(UPWD) then
        (UPWD as IHTMLInputElement).value := Password;
    end;
  end;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
 //WebBrowser1.Navigate('http://datenbank.ectil.org/query/search.aspx');
 WebBrowser1.Navigate('http://datenbank.ectil.org/query/login.aspx');
 //WebBrowser1.Navigate('http://eurotort.org');

 //WB_FillPwdForm(Webbrowser1, 'TextBox1','username','TextBox2','password')
end;

// initales auto login
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
    { if startup then
    begin
          startup := false;
          WB_FillPwdForm(Webbrowser1, 'TextBox1','Test','TextBox2','Test');
          WebBrowser1.OleObject.document.forms.item(0).Elements.item('Button1', 0).click;
     end;   }

end;
// Neues Fenster...
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
var
  NewWindow: Tform1;
begin
    // To create a new instance of the webbrowser application:
    NewWindow := TForm1.Create(Self);
    NewWindow.Webbrowser1.RegisterAsBrowser := True;
    ppDisp := NewWindow.WebBrowser1.DefaultDispatch;
    NewWindow.Show;
    Cancel := True;
    //self.Close;
end;
Ich möchte hauptsächlich, dass das Login akzeptiert wird.
Auto login - ist nur nebensächlich und könnte später interessant werden.

lg
Arnulf
Edit:
Ich hab übrigens auch versucht die logindaten in der adresszeile mit zu schicken
Das funktioniert im IE wunderbar nur mit Twebbrowser nicht - da komm ich immer wieder auf die login seite
  Mit Zitat antworten Zitat