Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.177 Beiträge
 
Delphi 12 Athens
 
#3

Re: Datei runterladen und dabei IE-Cockies verwenden

  Alt 18. Jul 2007, 14:46
na ja, es muß ja irgendwie möglichsein die Cockies direkt vom IE zu erfragen ... die temprären Dateien kann man ja auch erfragen und ändern.

und es muß nicht unbedingt sein, daß die Seite grade im IE geladen wird/wurde.
unter umständen kann es auch sein, daß für die Seite ein autologin eingerichtet wurde, was aber nicht immer de Fall ist.

da TWebbrowser ja den IE kapselt und somit automatisch dessen Cockies verwendet, läuft dieses erstmal von der gewünschten Funktion her nicht schlecht, aber eben nicht optimal.
Delphi-Quellcode:
  Function TForm1.DownloadFile(Const URL: String): String;
    Var D: TDateTime;

    Label NeuStart;

    Begin
      Try
        NeuStart:
        //WebBrowser1.Stop;
        D := Now;
        WebBrowser1.Tag := 0;
        WebBrowser1.Navigate(URL);
        While WebBrowser1.Tag = 0 do Begin
          If Application.Terminated Then Begin
            Result := '';
            Exit;
          End;
          If Now - D > 1/24/60/60*30 Then Begin
            WebBrowser1.Navigate('');
            Application.ProcessMessages;
            Sleep(100);
            Goto NeuStart;
          End;
          Application.ProcessMessages;
          Sleep(25);
        End;
        Result := (WebBrowser1.Document as IHTMLDocument2).body.outerHTML;
        //WebBrowser1.Navigate('');
      Except
        Result := '';
        Application.MessageBox(PChar(Exception(ExceptObject).Message),
          PChar(Caption + ' - Programmfehler'), MB_OK);
        Application.Terminate;
      End;
    End;

  Procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; Const pDisp: IDispatch;
    Var URL: OleVariant);

    Begin
      If TWebBrowser(Sender).Tag = 0 Then TWebBrowser(Sender).Tag := 1;
    End;
mir wäre es da lieber, wenn es schneller ginge und nicht die Datei erst angezeigt werden müßte.
es sieht blöd aus, wenn die Anzeige 'ne weile verschwindet, dafür dann die runterzuladene Datei angezeigt wird und dann muß die alte Anzeige wieder neu zusammengestellt werden.
außerdem ist es möglich, wärend die Datei geladen wird (da die auch nicht immer klein ist und das Internet hier am testrechner nicht grade schnell), daß man als User da in den Download eingreifen kann ... mit IE-Popup und auch über die Tastatur kann TWebbrowser ja auch gesteuert werden.
ESC=Download abbrechen
Backspace=Seite zurück (vorherige Seite laden)
usw.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat