Ich möchte meinem Programm die Möglichkeit hinzufügen dass der User auf eine neuere Programmversion prüfen kann.
Kennt sich jemand mit den INDY-Componenten (die ich sonst ohne Probleme verwende) aus und kann mir sagen, wie ich das Datei-Datum einer auf meinem Server vorhandenen Datei herausfinde?
Mit
Idftp1.list(listbox1.items, ‚programm.exe‘, true);
erhalte ich Angaben über die vorhandene Datei. Ok.
Bloss - wie genacu mache ich das, dass ich da genau das Datum rauskriege?
Ich möchte meinem Programm die Möglichkeit hinzufügen dass der
User auf eine neuere Programmversion prüfen kann.
Kennt sich jemand mit den INDY-Componenten (die ich sonst ohne
Probleme verwende) aus und kann mir sagen, wie ich das
Datei-Datum einer auf meinem Server vorhandenen Datei
herausfinde?
…
Hallo,
bist du sicher, dass das der richtige Weg ist? Eine echte Versionsnummer ist weitaus zuverlässiger, das Datum kann jederzeit geändert werden, z.B. beim Download (die Datei hat das Datum des Downloads!). Was zeigt denn z.B. deine About-Box an?
Eine echte Versionsnummer ist weitaus zuverlässiger …
Wie mach ich das dann am besten? Über den Dateinamen
vielleicht, aus dem die Versionsnummer ersichtlich ist?
Hallo J.Schloer,
Delphi, nehme ich an?
Projektoptionen / Versionsnummer. Hier kannst du alles eintragen.
Auslesen der Versionsnummer aus deinem Programm?
Z.B. so:
function GetBuildInfo(var AFilename: String; var V1, V2, V3, V4 : Word) : Boolean;
var
VerInfoSize: DWord;
VerValueSize: DWord;
Dummy: DWord;
VerInfo: Pointer;
VerValue: PVSFixedFileInfo;
begin
VerInfoSize:=GetFileVersionInfoSize(PChar(AFilename),Dummy);
Result:=False;
if VerInfoSize0 then
begin
GetMem(VerInfo,VerInfoSize);
try
if GetFileVersionInfo(PChar(AFilename),0,VerInfoSize,VerInfo) then
begin
if VerQueryValue(VerInfo,'\',Pointer(VerValue),VerValueSize) then
begin
with VerValue^ do
begin
V1:=dwFileVersionMS shr 16;
V2:=dwFileVersionMS and $FFFF;
V3:=dwFileVersionLS shr 16;
V4:=dwFileVersionLS and $FFFF;
end;
Result:=True;
end;
end;
finally
FreeMem(VerInfo,VerInfoSize);
end;
end;
end;
In V1, V2, V3, V4 findest du anschließend die 4 Teile der Versionsnummer.
Um die aktuelle Version zu ermitteln, leg doch einfach in Dokument auf deinen Server. Das kannst du auslesen und mit der Version des Programms vergleichen.
Projektoptionen / Versionsnummer. Hier kannst du alles
eintragen.
Ok.
Auslesen der Versionsnummer aus deinem Programm?
Z.B. so:
function GetBuildInfo(var AFilename: String; var V1, V2, V3,
V4 : Word) : Boolean;
Gut, danke für die ausführliche Beratung! Klappt einwandfrei.
In V1, V2, V3, V4 findest du anschließend die 4 Teile der
Versionsnummer.
Also: Mit der obigen Funktion lese ich die Versionsnummer des Programms auf meinem Computer aus; so weit so gut.
Um die aktuelle Version zu ermitteln, leg doch einfach in
Dokument auf deinen Server. Das kannst du auslesen und mit der
Version des Programms vergleichen.
Was meinst du damit? Was für ein Dokument meinst du?
Danke jedenfalls für die schnelle, ausführliche und geduldige Hilfe, Manfred!
Um die aktuelle Version zu ermitteln, leg doch einfach in
Dokument auf deinen Server. Das kannst du auslesen und mit der
Version des Programms vergleichen.
Was meinst du damit? Was für ein Dokument meinst du?
na, einfach eine kleine Textdatei, die aus ein paar Zeilen besteht, welche den Namen (zur Identifikation) und die aktuelle Versionsnummer deiner Software enthalten; z. B. so:
Um die aktuelle Version zu ermitteln, leg doch einfach in
Dokument auf deinen Server. Das kannst du auslesen und mit der
Version des Programms vergleichen.
Was meinst du damit? Was für ein Dokument meinst du?
In das Dokument schreibst du die Versionsnummer der aktuellen Version.
Das liest du mit deinem Programm aus (entweder direkt vom Server oder herunterladen und auslesen). Dann vergleichen:
aktuelle Version = Programmversion -> kein Update notwendig
aktuelle Version Programmversion -> Update notwendig.