Programm soll Updates aus dem Internet erhalten.

The G

Mitglied
Hallo.

Ich arbeite gerade en einem kleinen Prog, das im internet auf einer bestimmten Seite eine neue Version der exe Datei downloaden soll.

Nur weiß ich nicht, wie ich das realisieren kann.

- Es soll eine Verbindung mit dem Internet hergestellt werden?
- Das Verzeichniss in dem mein Prog installiert ist soll ermittelt werden?
- Die neue exe Datei soll ins ermittelte Verzeichniss gedownloadet werden und die existierende exe soll ersetzt werden?
- Die neue exe soll nach dem download automatisch gestartet werden?

Kann mir jemand bei den oben aufgelisteten punkten helfen?
Wenigstens bei einigen?

Ich danke im vorraus!
 
Hi The G,

ich kann dir leider nur bei ein, zwei Fragen helfen.

- Es soll eine Verbindung mit dem Internet hergestellt werden?
Tja, dafür wirst du wohl die APIs benutzen müssen - hab mich damit noch nicht befasst - sorry.
Schau am besten mal hier nach: Bitte hier klicken!

- Das Verzeichniss in dem mein Prog installiert ist soll ermittelt werden?
Das geht mit dem Befehl "Programmverzeichnis = App.Path".

- Die neue exe Datei soll ins ermittelte Verzeichniss gedownloadet werden und die existierende exe soll ersetzt werden?
Download - Keine Ahnung! :(
Exe ersetzen - siehe nächste Frage.

- Die neue exe soll nach dem download automatisch gestartet werden?
Also, sobald die neue Exe runtergeladen ist, erstellst du am besten eine Batch-File(.bat). Du beendest dein Programm und rufst direkt danach die Batch-File auf, die die alte Exe löscht, und die neue startet - oder du könntest natürlich die Alte zuerst löschen, die Neue dann umbennen und dann starten. Du musst eben nur die passenden MSDOS-Befehle dafür kennen.
Bei fehlendem Wissen hilft dir bestimmt Yahoo! weiter.

Ich hoffe, dass dir meine Antworten geholfen haben.

Ciao:
Da' Hacker
 
Zum Downloaden von irgendwas braucht man nicht unbedingt APIs. Man kann das Inet-Control dafür verwenden. Hier mal ein paar Links:
Du hast übrigens Glück, dass ich gut gelaunt bin! Sonst würde ich hier ein riesiges :google:-Bild hinpacken!

Edit: Ich baue als Downloadfunktion am liebsten eine extra Exe-Datei, die ich als Ressource in der Originalexe integriere. Wenn nun die neue Version des Programms heruntergeladen worden ist, dann wird die "Extra-Exe" gestartet. Diese wartet so lange im Hintergrund, bis das Programm beendet worden ist. Das überprüfe ich daran, ob die Thread-ID noch vorhanden ist. Wenn nun das Programm beendet worden ist (sei es durch den Anwender oder durch das Programm selber), dann überschreibt die Extra-Exe die alte Exe mit der neu heruntergeladenen Version des Programms und startet bei Bedarf die neue Exe. Das Extra-Exe Programm beendet sich danach.
Wenn du nicht willst, dass das Extra-Exe-Programm neben der eigentlichen Exe-Datei auf der Festplatte bleibt, dann kannst du diese ja durch das eigentliche Programm wieder löschen.
Man kann das ganze auch mit einer Batch-Datei machen, so wie es da Hacker gesagt hat, aber das hat bei mir nicht so ganz funktioniert weil Windows die Zugriffe auf die alte Exedatei zum Überschreiben nicht oder nicht schnell genug freigegeben hat.
 
Zuletzt bearbeitet:
Zurück