有什么Windows API可以读取exe的文件属性中的版本信息?

flamkuavos 2009-03-21 09:47:00
请教高人啦啦啦~
文件 -》 属性 -》 版本 -》版权
等等等吧,我只要能读取版本信息中的某一个条目就行了,为的是在其中放置一个字符串,程序执行的时候可以读取它作为开关量,把只有个别细节差别的不同版本的程序用一个exe文件就实现了
多谢!
...全文
368 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gyk120 2009-03-21
  • 打赏
  • 举报
回复
楼主精通多门语言?什么地方都看得到这帖子……
试下GetFileVersionInfo这个API
楼上是HUST的?膜拜下,CSDN里面HUST的牛真多
hust_terry 2009-03-21
  • 打赏
  • 举报
回复
CString GetProductVersion(LPCTSTR lpszFileName)
/*========================================================================
功能: 获取文件版本信息.
说明: 要使用此函数必需在程序中加入
#pragma comment(lib, "Version.lib")
----------------------------------------------------------------------------
参数: lpszFileName = 程序文件名,如果为空则是获取当前运行程序的版本信息
==========================================================================*/
{
CString strVersion;
TCHAR szSrcfn[MAX_PATH]; // 要获取信息的文件
if(lpszFileName == NULL)
::GetModuleFileName(NULL, szSrcfn, sizeof(szSrcfn));
else
lstrcpy(szSrcfn, lpszFileName);

// 读文件信息
DWORD dwVerHnd = 0;
DWORD dwVerInfoSize = ::GetFileVersionInfoSize(szSrcfn, &dwVerHnd);
if(dwVerInfoSize)
{
// If we were able to get the information, process it:
HANDLE hMem;
LPVOID lpvMem;
unsigned int uInfoSize = 0;
VS_FIXEDFILEINFO * pFileInfo;

hMem = ::GlobalAlloc(GMEM_MOVEABLE, dwVerInfoSize);
lpvMem = ::GlobalLock(hMem);
::GetFileVersionInfo(szSrcfn, dwVerHnd, dwVerInfoSize, lpvMem);
::VerQueryValue(lpvMem, (LPTSTR)_T("\\"), (void**)&pFileInfo, &uInfoSize);

WORD nVer[4];
nVer[0] = HIWORD(pFileInfo->dwProductVersionMS);
nVer[1] = LOWORD(pFileInfo->dwProductVersionMS);
nVer[2] = HIWORD(pFileInfo->dwProductVersionLS);
nVer[3] = LOWORD(pFileInfo->dwProductVersionLS);
strVersion.Format(_T("%d.%d.%d.%d"), nVer[0], nVer[1],nVer[2],nVer[3]);

::GlobalUnlock(hMem);
::GlobalFree(hMem);
}

return strVersion;
}
cnzdgs 2009-03-21
  • 打赏
  • 举报
回复
GetFileVersionInfoSize、GetFileVersionInfo、VerQueryValue
cnzdgs 2009-03-21
  • 打赏
  • 举报
回复
GetFileVersionInfoSizeEx、GetFileVersionInfoEx、VerQueryValue

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧