Delphi-Quellcode:
//Auslesen der Versionsnummer aus einer Datei
type
T_Version = Record
Hauptversion, Nebenversion, Ausgabe, Build : Integer;
end;
function GetVersion(Datei : String): T_Version;
var
VerInfoSize: DWORD;
VerInfo: Pointer;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
begin
Result.Hauptversion := 0;
Result.Nebenversion := 0;
Result.Ausgabe := 0;
Result.Build := 0;
If FileExists(Datei) Then begin
VerInfoSize := GetFileVersionInfoSize(PChar(Datei), Dummy);
if VerInfoSize = 0 then Exit;
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(Datei), 0, VerInfoSize, VerInfo);
VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
with VerValue^ do
begin
Result.Hauptversion := (dwFileVersionMS shr 16);
Result.Nebenversion := (dwFileVersionMS and $FFFF);
Result.Ausgabe := (dwFileVersionLS shr 16);
Result.Build := (dwFileVersionLS and $FFFF);
end;
FreeMem(VerInfo, VerInfoSize);
end
else begin
Result.Hauptversion := 0;
Result.Nebenversion := 0;
Result.Ausgabe := 0;
Result.Build := 0;
end;
end;
Dann musst du nur noch die aktuelle Version deiner EXE in eine Datei schreiben(z.B. binär)
Diese Datei lädst du runter, vergleichst den Inhalt der Datei(also die Versionsnummer) mit der Versionsnummer die die Prozedur oben für deine lokale EXE ausgibt.
Dann kannst du die EXE runterladen (in ein Update-Verzeichnis oder so) und mit der Batch-Datei aktualisierst du das Ganze.
Noch Fragen?