获取windows可执行文件的version信息(版本号)
之前在msdn上Version Information看到文件版本信息的介绍,看着整体比较复杂,就一直没做。现在需要获取ocx文件的版本号,所以查找了下相关资料,比较有用的就是VS_FIXEDFILEINFO结构,获取这个参数就基本可以完成任务了。
代码如下:
//typedef struct tagVS_FIXEDFILEINFO
//{
// DWORD dwSignature; /* e.g. 0xfeef04bd */
// DWORD dwStrucVersion; /* e.g. 0x00000042 = "0.42" */
// DWORD dwFileVersionMS; /* e.g. 0x00030075 = "3.75" */
// DWORD dwFileVersionLS; /* e.g. 0x00000031 = "0.31" */
// DWORD dwProductVersionMS; /* e.g. 0x00030010 = "3.10" */
// DWORD dwProductVersionLS; /* e.g. 0x00000031 = "0.31" */
// DWORD dwFileFlagsMask; /* = 0x3F for version "0.42" */
// DWORD dwFileFlags; /* e.g. VFF_DEBUG | VFF_PRERELEASE */
// DWORD dwFileOS; /* e.g. VOS_DOS_WINDOWS16 */
// DWORD dwFileType; /* e.g. VFT_DRIVER */
// DWORD dwFileSubtype; /* e.g. VFT2_DRV_KEYBOARD */
// DWORD dwFileDateMS; /* e.g. 0 */
// DWORD dwFileDateLS; /* e.g. 0 */
//} VS_FIXEDFILEINFO;
{
char szAppFullPath[_MAX_PATH] = {}; GetModuleFileName(NULL,szAppFullPath,MAX_PATH);//得到程序模块名称,全路径 //获取当前文件的版本信息
DWORD dwLen = GetFileVersionInfoSize(szAppFullPath,NULL);
char *pszAppVersion = new char[dwLen+];
if(pszAppVersion)
{
memset(pszAppVersion,,sizeof(char)*(dwLen+));
GetFileVersionInfo(szAppFullPath,NULL,dwLen,pszAppVersion);
CString strVersion;
UINT nLen();
VS_FIXEDFILEINFO *pFileInfo(NULL);
VerQueryValue(pszAppVersion,"\\",(LPVOID*)&pFileInfo,&nLen);
if(pFileInfo)
{
//获取文件版本号
strVersion.Format("%d.%d.%d.%d",HIWORD(pFileInfo->dwFileVersionMS),
LOWORD(pFileInfo->dwFileVersionMS),
HIWORD(pFileInfo->dwFileVersionLS),
LOWORD(pFileInfo->dwFileVersionLS));
}
}
}
基本思路就是先获取可执行文件所在的全路径,然后使用GetFileVersionInfo函数,获取版本信息;之后使用VerQueryValue函数,查询版本信息。
获取windows可执行文件的version信息(版本号)的更多相关文章
- [C语言](二)01 获取Windows图形构件大小信息
SYSMETS.c #include <windows.h> #include "SYSMETS.H"//自定义的单元,所以用"",不是用<& ...
- Python使用WMI模块获取Windows系统的硬件信息,并使用pyinstaller库编译打包成exe的可执行文件
由于公司现阶段大多数应用软件都是基于Windows系统开发和部署,很多软件安装部署都是在windows server 2012.windows server 2008之类的服务器上,部门同事每次测试一 ...
- sigar获取Windows系统的硬件信息进行JAVA后台系统资源监控
windows下,将sigar-amd64-winnt.dll复制到jdk的bin目录下或者拷贝到WEB-INF/lib下 linux下,将libsigar-amd64-linux.so拷贝到jdk的 ...
- python使用wmi模块获取windows下的系统信息监控系统-乾颐堂
Python用WMI模块获取Windows系统的硬件信息:硬盘分区.使用情况,内存大小,CPU型号,当前运行的进程,自启动程序及位置,系统的版本等信息. 本文实例讲述了python使用wmi模块获取w ...
- 获取windows版本信息的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 个人不建议用 GetVersion 或GetVersionEx 之类的 API 来获取系统版本号.注意微软也说过,这个 ...
- C++通用WMI接口实现获取Windows操作系统内核版本号
作为一名Windows开发者,能熟练掌握WMI技术,在开发Windows应用程序的时候往往能够事半功倍.今天来给大家分享一个使用WMI来获取Windows操作系统内核版本号的例子. 首先我们打开WMI ...
- 获取Windows平台下 安装office 版本位数信息
最近在处理客户端安装程序过程,有一个需求:需要检测Windows平台下安装office 版本信息以及获取使用的office是32 位还是64 位: 当检测出office 位数为64位时,提示当前off ...
- Python使用wmi获取Windows相关信息
在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获取, 什么是wmi? WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问.配置.管理和监 ...
- Delphi调用API函数获取Windows目录信息、获取System目录信息、获取Temp临时文件目录信息
var Str1, Str2: Array[..Max_Path]of Char;//开辟缓冲区 Str3: Array[..]of Char; begin GetWindowsDirectory(@ ...
随机推荐
- wordpress搭建博客上传begin主题The themes is locked to another domain
如题, 在使用wordpress搭建个人博客过程中, 上传begin主题, 出现如下弹框的错误, 而且样式有误. 环境: Los Angeles CentOS 7 x64 nginx+mysql 解决 ...
- java2小结(草稿)
Struts2 Servlet 小的Java程序,运行在服务器端,接收和响应从客户端发送过来的请求 流程分析: Servlet生命周期? Servlet配置自动加载?(理解) 1.服务器在启动的时候, ...
- sql server @@ROWCOUNT 会被 if 给 清 0
官方说 @@ROWCOUNT 会被以下几种语句清0 原文如下: Statements such as USE, SET <option>, DEALLOCATE CURSOR, CLOS ...
- node下使用jquery
node使用jquery的两种方式 在node下,使用jquery有两种方法: 使用jsdom模拟一个window对象 使用cheerio,cheerio只实现了jquery的dom部分功能,相当于j ...
- ROS学习(十三)—— 编写简单的Service和Client (C++)
一.编写Service节点 1.节点功能: 我们将创建一个简单的service节点("add_two_ints_server"),该节点将接收到两个整形数字,并返回它们的和. 2. ...
- lamp环境服务器配置文档
服务器配置命令开始(蓝色为输入命令,灰色为反馈内容): Yum update Reboot; yum -y install mysql mysql-server mysql-devel php php ...
- [AaronYang原创] 敏捷开发-Jira 6.0.5环境搭建[2]
基本配置-关卡一(我研究了1.5个小时 AaronYang) JIRA的设置向导将只显示您安装后第一次JIRA. 一旦你完成了它,你不能再次运行它. 然而,每一个设置在设置向导配置可以通过管理控制 ...
- Win7 安装 MongoDB
MongoDB 下载 MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.mon ...
- span的赋值与取值
1.<span id="span_id">span的文本</span>的取值. js取<span>的值并不是用document.getEle ...
- Windows键盘消息处理
原文链接: http://blog.sina.com.cn/s/blog_5f8817250100taab.html 本文大部分来自MSDN和网友的博客,我在实践的基础上再作了一些总结. 1,虚拟键( ...