Autor |
Beitrag |
Kaeawc
Beiträge: 41
|
Verfasst: Do 02.03.06 21:33
Ich will ein Programm schreiben was anhand einer .txt prüft (im selben Ordner), ob ein Update verfügbar ist (Es soll eine .txt auf dem download server mit der auf dem ordner prüfen, wenn ungleich dann download). Wenn ein Update verfügbar ist soll es direkt downloaden und falls es geht den Download Status unten anzeigen. (Kann man mehrere Dateien auf einmal downloaden lassen?)
Kann mir da jemand weterhelfen?
|
|
digi_c
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Fr 03.03.06 09:21
Die wesentlichen Schritte sind dir sicherlich klar
- HTTP DOWNLOAD der .txt
-Analyse dieser .txt
-HTTP Download der Installationsdatei
-Ausführen der Installation
Vielleicht kannst du es aber auch einfacher machen, indem er einfach nur schaut ob eine Datei mit höherer Version in dem Downloadverzeichnis des Servers ist.
|
|
Darth Sitthiander
Beiträge: 95
|
Verfasst: Fr 03.03.06 13:30
Cool, das kann ich auch gut gebrauchen danke! Könntest du mir noch sagen wie ich die txt analysieren kann? Danke im Vorraus.
|
|
digi_c
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Fr 03.03.06 13:49
FileOpen,...
Oder du benutzt eine .INI Datei, da musst du weniger schnippeln
|
|
Darth Sitthiander
Beiträge: 95
|
Verfasst: Fr 03.03.06 18:20
Hast du dazu ein tutorial? Ich bin eben n ziemlicher neewbie.
|
|
Martin1966
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Fr 03.03.06 18:23
Schau mal in die Delphi-Library. Dort müsste es ein Tutorial oder einen FAQ Beitrag über INI-Files geben.
Lg Martin
_________________ Ein Nutzer der Ecke
|
|
Stefan-W
Beiträge: 475
Win 7 SP1
D2005 PE
|
Verfasst: Fr 03.03.06 18:25
wenn du eine Ini nimmst sparst du dir jede mänge arbeit! und du kannst sie ja trotzdem *.txt nennen.
für beispiele zum nutzen der INI einfach mal in der Delphi Hilfe nach INI suchen (da gibts jede Mänge Infos und auch Beispiele woraus du dir dann was zurecht copieeren kannst)
|
|
digi_c
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Sa 04.03.06 10:17
Vielleicht kannst du es dir aber auch einfacher machen und einen Installer benutzen, der dieses Feature gleich mitbringt. Mir war so als wenn NSIS das kann. Sicher bin ich mir da aber nicht ...
Oder du benutzt eine fertige Lösung www.torry.net/pages.php?id=47
|
|
Darth Sitthiander
Beiträge: 95
|
Verfasst: So 05.03.06 16:58
Puh sind die Dinger teuer^^
Wie benutzt man denn das? Ich hab die trial von athlant und komm da irgendwie nicht raus. ich habs schon in delphi integriert, aber ich kann nur den manager öffnen und da steht immer not controlled. hmm. wie würde es denn mit den txts gehen? schriebt man da ne textdatei und da steht dann irgendwas drinne und wenn man im prog auf update... klickt downloadet er die txt und liest die und weiss dann wo er die neue dateien downloaden soll? Und das was in der txt steht ist ne ini? Hat da jemand für alles n tutorial?
|
|
digi_c
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: So 05.03.06 18:16
Es kommt komplett drauf an, was du machen willst und wie komplex es ist:
Soll nur dein Programm geupdatet werden oder auch nach neuen Plugins,... geschaut werden.
Wie willst du Updates rausbringen, braucht bloß die .EXE ersetzt zu werden oder müssen in der Registry Dinge verschoben werden,ActiveX Objekte registriert werden,was ist wenn dieses Programm zentral per ActiveDirectory verteilt werden soll?...(deswegen meinte ich evtl. besser Installer nehmen).
Für den einfachsten Fall, eine .EXE und die soll nur geupdatet werden und in der einfachsten Umsetzung:
1.TXT besorgen DATEIEN ÜBER DAS HTTP-PROTOKOLL HERUNTERLADEN
2.Lesen welche Dateiversion darin vermerkt ist (am besten Zahlen) TYPISIERTE DATEIEN
3.Lesen der lokalen Versionszahl ALLE VERSIONSINFORMATIONEN AUSLESEN
4.Auswerten ob eine Versionszahl größer ist als bestehende, dann holen
5.Anwendung beenden und über Hilfsprogramm die Hauptexe ersetzen DATEIEN KOPIEREN
|
|
Darth Sitthiander
Beiträge: 95
|
Verfasst: So 05.03.06 18:21
Dankeschön. Ich wollte nur die exedatei ersetzen. Mach mich dann mal an die arbeit. Danke
|
|
GTA-Place
Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: So 05.03.06 19:26
Es reicht wenn das "Hilfsprogramm" ein DOS-Programm (oder wie man das nennt) ist.
1. Du lädst die neue Datei herunter.
2. Du öffnest mit ShellExcute das DOS-Programm.
3. Du beendest dein Programm.
4. Du löscht die alte Datei*.
5. Du nennst die neue Datei in die alte um*.
6. Du startest wieder dein Programm*.
*mit deinem DOS-Programm.
Und auch sonst geht alles einfacher:
Am besten lädst du dir die Indy-Komponenten von www.indyproject.org/ herunter.
Dann kannst du mit der idHTTP-Komponente und idHTTP.Get(); die Textdatei auf deiner Website auslesen.
Die aktuelle Version speicherst du in einer Konstante und const im Source.
Dann musst du nur noch prüfen ob die Konstante größer als die Variable auf der Website ist.
Downloaden geht mit Indy oder URLDownloadToFile;()
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
digi_c
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Mo 06.03.06 14:41
klar GTA-Place kann er das auch mit einer Batch Datei machen quasi Batch Patch
|
|
Fighter#1
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: Mo 06.03.06 19:11
Download geht auch völlig simpel ohne die indys mit urlmon ...
Ansonsten is ja alles kloar
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
Darth Sitthiander
Beiträge: 95
|
Verfasst: Mo 06.03.06 19:14
Vielleicht bin ich im moment einfach zu blöd dafür. Wie lange braucht man ungefähr dafür wenn man nur 10 % ahnung vom internet seiner Vorstellung hat?
|
|
Fighter#1
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: Mo 06.03.06 19:25
Also das mit dem Download geht ganz einfach:
Delphi-Quelltext 1: 2: 3: 4:
| uses ..,Urlmon;
UrlMon.URLDownloadToFile(nil,'onlinedatei','offlinedatei',0,nil); |
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
GTA-Place
Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Mo 06.03.06 19:35
UrlMon. kann weggelassen werden (URLDownloadToFile(...);) reicht.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Martin1966
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Mo 06.03.06 19:49
50% Deiner Links liefern kein Ergebnis.
1.TXT besorgen INTERNETOPEN INTERNETOPENURL INTERNETREADFILE
2.Lesen welche Dateiversion darin vermerkt ist (am besten Zahlen) RESET READLN
3.Lesen der lokalen Versionszahl GETFILEVERSION
4.Auswerten ob eine Versionszahl größer ist als bestehende, dann holen
5.Anwendung beenden und über Hilfsprogramm die Hauptexe ersetzen DATEIEN KOPIEREN
_________________ Ein Nutzer der Ecke
|
|
digi_c
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Di 07.03.06 12:27
Das tut mir leid aber eine Suche DATEIEN ÜBER DAS HTTP-PROTOKOLL HERUNTERLADEN DELPHI,.. bringt natürlich das gewünschte....
|
|