Je veux pointer vers un http://somesite.com/somefile.exe et vérifier la version du fichier côté serveur exe et comparer les informations de version au même fichier .exe tout prêt sur mon ordinateur. Si le fichier côté serveur est plus récent, je veux le télécharger.Vérifiez la version du fichier et du fichier .exe (côté serveur) et, si plus récent, téléchargez
J'ai des fonctions pour télécharger le fichier et vérifier la version du fichier mais je veux vérifier si la version du fichier est plus récente que celle que j'ai sur mon ordinateur.
Je ne veux pas télécharger l'exe sur mon ordinateur, puis vérifier la version du fichier.
Est-ce que quelqu'un ici a été capable de faire cela?
function GetVersion(sFileName:string): string;
var
VerInfoSize: DWORD;
VerInfo: Pointer;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
begin
VerInfoSize := GetFileVersionInfoSize(PChar(sFileName), Dummy);
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(sFileName), 0, VerInfoSize, VerInfo);
VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
with VerValue^ do
begin
Result := IntToStr(dwFileVersionMS shr 16);
Result := Result + '.' + IntToStr(dwFileVersionMS and $FFFF);
Result := Result + '.' + IntToStr(dwFileVersionLS shr 16);
Result := Result + '.' + IntToStr(dwFileVersionLS and $FFFF);
end;
FreeMem(VerInfo, VerInfoSize);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Http: TIdHTTP;
MS: TMemoryStream;
begin
Http := TIdHTTP.Create(nil);
try
MS := TMemoryStream.Create;
try
Http.OnWork:= HttpWork;
Http.Get('http://live.sysinternals.com/ADExplorer.exe', MS);
MS.SaveToFile('C:\ADExplorer.exe');
finally
MS.Free;
end;
finally
Http.Free;
end;
end;
Cela ne peut pas être fait! Vous ne pouvez pas introspecter un fichier sans le télécharger! – LaKraven
Vous devriez vérifier par la date de modification du fichier EXE sur le serveur à la place; en utilisant la méthode de requête HTTP HEAD. Sinon, vous devriez avoir quelque chose comme un fichier XML sur le serveur qui décrivent les informations du fichier EXE actuellement disponibles. – Jay
Lors du téléchargement de l'application - téléchargez également le fichier PAD: http://pad.asp-software.org/ - vérifiez ensuite par ce fichier. Ou vous pouvez même faire du fil RSS pour votre application. –