Показать сообщение отдельно
  #1  
Старый 27.04.2011, 15:23
Аватар для fofka
fofka fofka вне форума
Начинающий
 
Регистрация: 12.10.2008
Сообщения: 163
Репутация: -1588
Вопрос Свойства файла

Добрый день. Подскажите как узнать свойства файла. Конкретно интересует как узнать версию файла. Нашел код, но не пойму где указать путь к файлу.
Код 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;
Хочу сделать чтоб программа сама следила, что есть более новая версия. Хочу обновление таким образом наладить. Или подскажите как лучше реализовать. Думаю уже сталкивались с таким вопросом.
Заранее благодарю.
Ответить с цитированием