Как узнать версию программы
Как узнать версию программы
Как узнать версию программы function GetFileVersion(const FileName: TFileName; var Major, Minor, Release, Build: Integer): Boolean; var InfoSize, Wnd: DWORD; VerBuf: Pointer; FI: PVSFixedFileInfo; VerSize: DWORD; begin Result:= False; InfoSize:= GetFileVersionInfoSize(PChar(FileName), Wnd); if InfoSize <> 0 then begin GetMem(VerBuf, InfoSize); try if GetFileVersionInfo(PChar(FileName), Wnd, InfoSize, VerBuf) then if VerQueryValue(VerBuf, '\', Pointer(FI), VerSize) then begin Major:= FI.dwFileVersionMS shr 16; Minor:= FI.dwFileVersionMS and $FFFF; Release:= FI.dwFileVersionLS shr 16; Build:= FI.dwFileVersionLS and $FFFF; Result:= True; end; finally FreeMem(VerBuf); end; end; end; Ilya Katargin------------------------------------------------------- function GetFileVersion(FName: TFileName): String; var S: String; n, Len: Cardinal; Buf, Value: PChar; begin Result:=''; S := FName; n := GetFileVersionInfoSize(PChar(S), n); if n = 0 then Exit; Buf := AllocMem(n); GetFileVersionInfo(PChar(S), 0, n, Buf); if VerQueryValue(Buf, PChar('StringFileInfo\041904E3\FileVersion'), Pointer(Value), Len) then Result:=Value; FreeMem(Buf, n); end; шеп <шеп@p256.f1355.n5020.z2.fidonet.org> ------------------------------------------------- > if VerQueryValue(Buf, PChar('StringFileInfo\041904E3\FileVersion'), Здесь жестко прописан язык и кодовая страница '041904E3'. В хелпе к Д6 тоже прописано жестко: '040904E4' (см. Reading version information в хелпе). Я ,кстати, сам не сразу сообразил, что это значение в хелпе не работает для русского языка :( А ведь это значение можно взять там же: type TLangChrSet = array[0..1] of word; PLangChrset = ^TLangChrSet; var LangChrSet: PLangChrSet; ... после получения FileVersionInfo VerQueryValue(Buf, PChar('VarFileInfo\Translation'), pointer(LangChrset), Len); S:=Format('%.4x%.4x',[LangChrSet^[0], LangChrSet^[1]]); теперь в S у нас то, что надо :)