好,给几个函数还不行,那就给段代码吧:procedure TForm1.Button1Click(Sender: TObject);
var
  dwVerInfoSize, dwVerHnd: DWORD;
  hMem: THandle;
  lpvMem, lszVer: Pointer;
  szGetName: array[0..255] of Char;
  cchVer: UINT;
  fRet: Boolean;
  vsffi: VS_FIXEDFILEINFO;
begin
  dwVerInfoSize := GetFileVersionInfoSize('Shell32.dll', dwVerHnd);
  if Boolean(dwVerInfoSize) then
  begin
    hMem := GlobalAlloc(GMEM_MOVEABLE, dwVerInfoSize);
    lpvMem := GlobalLock(hMem);
    GetFileVersionInfo('Shell32.dll', dwVerHnd, dwVerInfoSize, lpvMem);
    StrCopy(szGetName, '\');
    lszVer := nil;
    fRet := VerQueryValue(lpvMem, szGetName, lszVer, cchVer);
    if fRet and Boolean(cchVer) and Boolean(lszVer) then
    begin
      vsffi := VS_FIXEDFILEINFO(lszVer^);
      ShowMessage('文件版本: ' +
                 IntToStr(HIWORD(vsffi.dwFileVersionMS)) + '.' +
                 IntToStr(LOWORD(vsffi.dwFileVersionMS)) + '.' +
                 IntToStr(HIWORD(vsffi.dwFileVersionLS)) + '.' +
                 IntToStr(LOWORD(vsffi.dwFileVersionLS)));
    end;
    GlobalUnlock(hMem);
    GlobalFree(hMem);
  end;
end;