Entwickler-Ecke

Internet / Netzwerk - Download starten ohne Browser


0nk3lz - Do 09.04.09 12:01
Titel: Download starten ohne Browser
Hallöchen,
ich arbeite im Moment an einem "Downloader".
Ist es da möglich, dass man den Download auch gestartet bekommt, ohne dass der Browser geöffnet wird?
Wenn ja, wie?
MfG 0nk3lz


BenBE - Do 09.04.09 12:12

Ja, das geht. [http://homepages.tesco.net/~J.deBoynePollard/FGA/questions-with-yes-or-no-answers.html]


0nk3lz - Do 09.04.09 12:15

OK, war ne blöde Frage :)
Aber wie geht es denn?^^ Könntest du mir das verraten? ;)


curtiss - Do 09.04.09 12:21

"Ja. Das geht." xD

herrlich


BenBE - Do 09.04.09 13:03

Dir bieten sich zum Downloaden einer Datei eine ganze Reihe von Möglichkeiten. Eine geht mit Hilfe der Komponente IdHTTP, eine andere funktioniert über die Windows-API (genauen Namen müsst ich nachgucken). Weiterhin kannst Du auch immer noch mit Hilfe von Sockets das HTTP-Protokoll schnell selber implementieren und den DL dann auswerten. Kommt ganz drauf an, was Du genau tun willst. Nähere Infos zu all den genannten Möglichkeiten finden sich bereits zu Hauf hier im Forum ;-)


Andreas L. - Do 09.04.09 13:13


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var
downloader: TidHttp;
fs: TFileStream;
begin
  fs := TFilestream.Create('C:\Zieldatei.dat');
  downloader := TIdHttp.Create;
  downloader.Get('http://blubb.de/datei.dat', fs);
  downloader.free;
  fs.free;
end;


BenBE - Do 09.04.09 13:41

user profile iconAndreas L. hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
downloader: TidHttp;
fs: TFileStream;
begin
  fs := TFilestream.Create('C:\MeinVirus.exe');
  try
    downloader := TIdHttp.Create;
    try
      downloader.Get('http://blubb.de/datei.dat', fs);
    finally
      downloader.free;
    end;
  finally

    fs.free;
  end;
end;


Wenn schon, dann bitte richtig ;-)

Fehlt nur noch das Ausführen der Datei ...


0nk3lz - Do 09.04.09 14:10

Danke für die Antworten ;)


JayEff - Do 09.04.09 17:03

Eine andere Möglichkeit bietet die Funktion URLDownloadToFile aus der Unit urlmon. Am besten mal danach suchen, wenn du eine Alternative sehen willst. Meines Wissens konnte man da auch eine Callback-Prozedur für eine Fortschrittsanzeige übergeben.


jaenicke - Do 09.04.09 17:10

Er hat den Code schon kopiert und in der DP eine Folgefrage [http://www.delphipraxis.net/post1024418.html] gestellt. (uses IdHttp fehlte ihm, und dem Create des FileStreams fehlte ein Parameter.)
Warum er das nicht gleich hier gefragt hat, frage ich mich allerdings... :roll: