Добрый день. Подскажите как узнать свойства файла. Конкретно интересует как узнать версию файла. Нашел код, но не пойму где указать путь к файлу.
Код HTML:
const
TypeInfo: array[0..9] of string = ( 'CompanyName',
'FileDescription',
'FileVersion',
'InternalName',
'LegalCopyright',
'LegalTrademarks',
'OriginalFilename',
'ProductName',
'ProductVersion',
'Comments' );
function FileVersion( AFileName, Info: string ): string;
var
szName: array[0..255] of Char;
P: Pointer;
Value: Pointer;
Len: UINT;
GetTranslationString: string;
FFileName: PChar;
FValid: boolean;
FSize: DWORD;
FHandle: DWORD;
FBuffer: PChar;
begin
try
FFileName := StrPCopy( StrAlloc( Length( AFileName ) + 1 ), AFileName );
FValid := False;
FSize := GetFileVersionInfoSize( FFileName, FHandle );
if FSize > 0 then
try
GetMem( FBuffer, FSize );
FValid := GetFileVersionInfo( FFileName, FHandle, FSize, FBuffer );
except
FValid := False;
raise;
end;
Result := '';
if FValid then
VerQueryValue( FBuffer, '\VarFileInfo\Translation', P, Len )
else
P := nil;
if P <> nil then
GetTranslationString := IntToHex( MakeLong( HiWord( Longint( P^ ) ),
LoWord( Longint( P^ ) ) ), 8 );
if FValid then
begin
StrPCopy( szName, '\StringFileInfo\' + GetTranslationString + '\' + Info );
if VerQueryValue( FBuffer, szName, Value, Len ) then
Result := StrPas( PChar( Value ) );
end;
finally
if FBuffer <> nil then
FreeMem( FBuffer, FSize );
StrDispose( FFileName );
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage( FileVersion( ParamStr( 0 ), TypeInfo[2] ) );
end;
Хочу сделать чтоб программа сама следила, что есть более новая версия. Хочу обновление таким образом наладить. Или подскажите как лучше реализовать. Думаю уже сталкивались с таким вопросом.
Заранее благодарю.