CString GetFileVersion(const CString& sTargetFileName)
{
DWORD nInfoSize = 0, dwHandle = 0;
nInfoSize = GetFileVersionInfoSize(sTargetFileName, &dwHandle);
if (nInfoSize == 0)
{
return _T("");
}
char* pInfoBuf = new char[nInfoSize];
GetFileVersionInfo(sTargetFileName, 0, nInfoSize, pInfoBuf);
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
}*pTranslate;
UINT cbTranslate = 0;
VerQueryValue(pInfoBuf, TEXT("\\VarFileInfo\\Translation"), (LPVOID*)&pTranslate, &cbTranslate);
CString version;
// Read the file description for each language and code page.
for (int i = 0; i < (cbTranslate / sizeof(struct LANGANDCODEPAGE)); i++)
{
WCHAR SubBlock[256] = { 0 };
wsprintf(SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\FileVersion"),
pTranslate[i].wLanguage,
pTranslate[i].wCodePage);
WCHAR* pVersion = NULL;
UINT nBytes = 0;
VerQueryValue(pInfoBuf, SubBlock, (LPVOID*)&pVersion, &nBytes);
version = pVersion;
break;
}
delete pInfoBuf;
return version;
}
void CtestmfcversionDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CString stdstr("C:\\Program Files (x86)\\VMware\\VMware Workstation\\vmware.exe");
GetFileVersion(stdstr);
CDialogEx::OnOK();
}
mfc获取exe的版本信息的更多相关文章
-
获取Exe文件版本信息的函数(使用GetFileVersionInfo得到TFileVersionInfo结构体,包含12项内容)
Type TFileVersionInfo = Record FixedInfo:TVSFixedFileInfo; {版本信息} Comp ...
-
获取 Android APP 版本信息工具类(转载)
获取 Android APP 版本信息工具类 获取手机APP版本信息工具类 1.获取版本名称 2.获取版本号 3.获取App的名称 package com.mingyue.nanshuibeidiao ...
-
E1.获取Elixir/Erlang版本信息
E1.获取Elixir/Erlang版本信息 获取Elixir版本 直接在shel中打开iex (interactive shell),就可以查到具体的版本信息: iex Erlang/OTP 22 ...
-
使用JavaScript获取浏览器Chrome版本信息
Navigator对象包含了有关浏览器的信息 可通过访问其属性appVersion或userAgent来获取浏览器Chrome版本 例如,我所使用的QQ浏览器的appVersion和userAgent ...
-
js获取智能机浏览器版本信息
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
-
Python获取exe文件版本
import time, datetime, re, subprocess, sys, os, win32net, win32api, win32con, win32netcon, win32secu ...
-
php:获取浏览器的版本信息
//分析返回用户网页浏览器名称,返回的数组第一个为浏览器名称,第二个是版本号. function getBrowser() { $sys = $_SERVER['HTTP_USER_AGE ...
-
通过visual studio修改dll或exe的版本信息
可以编辑修改了 来自为知笔记(Wiz)
-
c# 获取系统版本,获取net framework 版本(Environment 类)
1.获取当前操作系统版本信息 使用Environment.OSVersion 属性 获取包含当前平台标识符和版本号的 OperatingSystem 对象. 命名空间: System程序集: ms ...
随机推荐
-
mysql-mmm 安装配置(双主)
原文地址:mysql-mmm 安装配置 作者:chinaunix1116 MMM即Master-Master Replication Managerfor MySQL(mysql主主复制管理器)关于m ...
-
mybatis报错Mapped Statements collection does not contain value for com.inter.IOper
首页 > 精品文库 > mybatis报错Mapped Statements collection does not contain value for com.inter.IOper m ...
-
MongoDB 初识1: 启动MongoDB
Mongodb可作为网络服务器运行,客户端可连接到该服务器并执行操作. 1. 首先,用户必须下载Mongodb并解压,运行mongod命令启动实例 下载地址:http://www.mongodb.or ...
-
XML基础概念
XML基础概念 一.什么是XML. 可扩展标记语言(EXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 二.XML特点 1 ...
-
java继承(一)
虽然说java中的面向对象的概念不多,但是具体的细节还是值得大家学习研究,java中的继承实际上就是子类拥有父类所有的内容(除私有信息外),并对其进行扩展.下面是我的笔记,主要包含以下一些内容点: 构 ...
-
js 解析本地Excel文件!
通常,一般读取Excel都是由后台来处理,不过如果需求要前台来处理,也是可以的.. 1.需要用到js-xlsx,下载地址:js-xlsx 2.demo: <!DOCTYPE html>&l ...
-
关于Page_Load事件发生情况
Page_Load事件会在第一次加载页面时发生和将该页面回发到服务器时发生 第一种情况Page.IsPostBack返回false,第二种返回True. 若在Page_Load事件中有一些对控件的操作 ...
-
lambda高级进阶--组合函数
只有一个参数的函数可以将一个值转换成另一个值,如果你有2个这样的转换函数,那么在进行一个转换之后在进行第二个转换,其实也是一个中转换. 说到这里,先说一下我个人的一个习惯,我在写javaBean的se ...
-
Vtiger CRM 几处SQL注入漏洞分析,测试工程师可借鉴
本文由云+社区发表 0x00 前言 干白盒审计有小半年了,大部分是业务上的代码,逻辑的复杂度和功能模块结构都比较简单,干久了收获也就一般,有机会接触一个成熟的产品(vtiger CRM)进行白盒审计, ...
-
Python内置函数(7)——bytearray
英文文档: class bytearray([source[, encoding[, errors]]]) Return a new array of bytes. The bytearray cla ...