Programming/Delphi

파일 버전 알아내기

통통만두 2010. 12. 16. 20:33
반응형
function GetFileVersion(FilePath: String; VerType: Integer): Integer;
var
  InfoSize: Integer;
  dwH: DWORD;
  Buf: PChar;
  pFileInfo: PVsFixedFileInfo;
  Len: UINT;
begin
  Result := 0;

  // 파일존재여부 검사
  if not FileExists(FilePath) then Exit;

  InfoSize := GetFileVersionInfoSize(PChar(FilePath), dwH);
  if InfoSize = 0 then Exit;

  GetMem(Buf, InfoSize);

  if GetFileVersionInfo(PChar(FilePath), 0, InfoSize, Buf) then begin
    if VerQueryValue(Buf, '\\', Pointer(pFileInfo), Len) then begin
      case VerType of
        _FILEVERSION_MAJOR    : Result := HiWord(pFileInfo.dwFileVersionMS);
        _FILEVERSION_MINOR    : Result := LoWord(pFileInfo.dwFileVersionMS);
        _FILEVERSION_BUILD_NO : Result := HiWord(pFileInfo.dwFileVersionLS);
        _FILEVERSION_REVISION : Result := LoWord(pFileInfo.dwFileVersionLS);
      end;
    end;
  end;

  FreeMem(Buf);
end;
반응형