获取当前程序的版本和获取某个文件的版本
来源:互联网 发布:php判断是否为空 编辑:程序博客网 时间:2024/05/20 10:54
软件更新需要获取当前程序的版本和获取某个文件的版本,在网上找了两段代码记录下来
1.获取某个文件的版本
BOOL GetFileVersion(LPCTSTR strFile, CString& strVersion){TCHAR szVersionBuffer[8192] = _T("");DWORD dwVerSize;DWORD dwHandle;dwVerSize = GetFileVersionInfoSize(strFile, &dwHandle);if (dwVerSize == 0){return FALSE;}if (GetFileVersionInfo(strFile, 0, dwVerSize, szVersionBuffer)){VS_FIXEDFILEINFO *pInfo;unsigned int nInfolen;if (VerQueryValue(szVersionBuffer, _T("\\"), (void**)&pInfo, &nInfolen)){strVersion.Format(_T("%d.%d.%d.%d"),HIWORD(pInfo->dwFileVersionMS),LOWORD(pInfo->dwFileVersionMS),HIWORD(pInfo->dwFileVersionLS),LOWORD(pInfo->dwFileVersionLS));return TRUE;}}return FALSE;}
2.获取当前程序的版本
CString GetVersion(){CString strVersion;TCHAR szFullPath[MAX_PATH];DWORD dwVerInfoSize = 0;DWORD dwVerHnd;VS_FIXEDFILEINFO * pFileInfo;GetModuleFileName(NULL, szFullPath, sizeof(szFullPath));dwVerInfoSize = GetFileVersionInfoSize(szFullPath, &dwVerHnd);if (dwVerInfoSize){HANDLE hMem;LPVOID lpvMem;unsigned int uInfoSize = 0;hMem = GlobalAlloc(GMEM_MOVEABLE, dwVerInfoSize);lpvMem = GlobalLock(hMem);GetFileVersionInfo(szFullPath, dwVerHnd, dwVerInfoSize, lpvMem);::VerQueryValue(lpvMem, (LPTSTR)_T("\\"), (void**)&pFileInfo, &uInfoSize);int ret = GetLastError();WORD m_nProdVersion[4];m_nProdVersion[0] = HIWORD(pFileInfo->dwProductVersionMS);m_nProdVersion[1] = LOWORD(pFileInfo->dwProductVersionMS);m_nProdVersion[2] = HIWORD(pFileInfo->dwProductVersionLS);m_nProdVersion[3] = LOWORD(pFileInfo->dwProductVersionLS);strVersion.Format(_T("%d.%d.%d.%d"), m_nProdVersion[0],m_nProdVersion[1], m_nProdVersion[2], m_nProdVersion[3]);GlobalUnlock(hMem);GlobalFree(hMem);}return strVersion;}
阅读全文
0 0
- 获取当前程序的版本和获取某个文件的版本
- 获取程序的版本
- 获取当前SDK的版本
- 获取当前版本的版本号
- 获取当前设置的版本
- 获取程序当前版本信息
- Android 获取当前APP和系统的版本信息
- 获取当前应用的版本名称和版本号
- 《android 获取当前app的版本号和版本名称》
- vb.net 获取当前程序的版本(软件自己的版本)
- 获取ios设备当前的系统版本
- 获取当前ios系统的版本信息
- android:获取当前应用的版本
- Robotium_获取当前客户端的版本信息
- 获取当前APP的系统版本
- 获取当前操作系统的语言版本
- ios 获取当前app的版本信息
- java 获取当前系统的版本信息
- JSch Java实现的 SFTP功能的利器
- jQuery lazyload 懒加载
- C++如何直接对对象进行运算操作
- mysql 三个月前
- apache poi下载流程
- 获取当前程序的版本和获取某个文件的版本
- 京东金融商户平台对接开发
- 从头创建一个基于 React, webpack, babel 的模板项目
- 城市三级联动
- KCF目标跟踪方法分析与总结
- CAD 的文字能够被选中但是不能修改,怎么办?
- [python基础理论]python学习笔记3
- java进阶(二) java对象和json字符串的互转
- 10.java实现简单错误记录