EVC获取文件的版本信息的方法

原创 2007年09月21日 16:29:00

  
 /**********获取、显示版本信息 开始*****************/
 TCHAR* fileName =_T("//Windows//NOTES.EXE");             //指定要获取信息的文件路径
 TCHAR *productVersion;         //用于存放产品版本号
  TCHAR SubBlock[100];          //用于存放要查询的信息名称,相当于数据库中要查询的某个属性名
 unsigned int productVersionLen;//用于存放获取的产品版本号的长度
 unsigned int cbTranslate;//用于存放文件的language and code pages的大小,这是信息版本的必要子项
 DWORD versionSize;//文件版本的全部信息的大小

////////////////////获取文件版本的全部信息的大小,开始////////////////////
 if((versionSize = GetFileVersionInfoSize(fileName,NULL))==0)
 {
  return;
 }
////////////////////获取文件版本的全部信息的大小,结束////////////////////


 LPVOID versionInfo = new DWORD[versionSize];     //为versionInfo 分配存储空间

//////////////////////////////获取文件版本的全部信息,开始/////////////////////////////////////
 if(GetFileVersionInfo(fileName,NULL,versionSize,versionInfo)==0)
 {
  return;
 }
 //////////////////////////////获取文件版本的全部信息,结束/////////////////////////////////////

 //定义language and code page结构体,方便查询
 struct LANGANDCODEPAGE
 {
  WORD wLanguage;
  WORD wCodePage;
 } *lpTranslate;  //指向结构体的指针

.
 memset(SubBlock,'0',sizeof(SubBlock));//清空内存

 //获取文件的language and code pages,保存在lpTranslate结构体中,开始//
 VerQueryValue(versionInfo,
              TEXT("//VarFileInfo//Translation"),
              (LPVOID*)&lpTranslate,
              &cbTranslate);
 //获取文件的language and code pages,保存在lpTranslate结构体中,结束//

 /****************************获取ProductVersion,开始****************/
 //设置具体要获取的信息的名称,用SubBlock存储//
 wsprintf( SubBlock,
            TEXT("//StringFileInfo//%04x%04x//ProductVersion"),
            lpTranslate->wLanguage,
            lpTranslate->wCodePage);
 
 //获取ProductVersion,保存在productVersion中//
 VerQueryValue(versionInfo,
                SubBlock,
                (LPVOID*)&productVersion,
                &productVersionLen);
 /**********************获取ProductVersion,结束******************/

delete[] versionInfo;
delete lpTranslate;

MessageBox(productVersion,_T("ProductVersion"),MB_OK);
 /**********获取、显示版本信息 开始*****************/

本程序只获得了版本信息中的ProductVersion子项,同理可获得其他子项。

python 得到文件版本信息 公司名和产品名(2)

为什么还有二,因为一使用了win32api模块,而这个模块只在windows系统下有,对linux系统木有这个模块。。 在linux下得到文件 版本信息是通过pefile模块解析文件 中的字符串得到...
  • xiaocaiju
  • xiaocaiju
  • 2012年05月25日 18:53
  • 1422

获取所有已安装软件以及获取应用程序版本信息

最近在做一个视频跳转播放功能,也就是在第三方应用中播放本应用内的视频,这需要获取第三方应用的版本号,以便做兼容,其实获取第三方应用的版本号很简单:      // 获取所有已安装的应用包名、版本号、版...
  • JustinNick
  • JustinNick
  • 2016年11月06日 10:13
  • 3096

自己写的一个PE文件FileVersionInfo类,可以轻松获取PE文件版本信息

今天写了一个类似任务管理器的东西,需要获取到对应进程d
  • q244767346
  • q244767346
  • 2014年08月22日 10:18
  • 1435

vsphere中的evc介绍

什么是Enhanced VMotion Compatibility (EVC)?增强型 vMotion 兼容性 可以使用增强型 vMotion 兼容性 (Enhanced vMo...
  • pastway
  • pastway
  • 2015年08月27日 10:44
  • 4092

读取EXE文件的版本信息

读取EXE文件的版本信息function jzlGetVersion(filename:string):string;var  InfoSize, Wnd: DWORD;  VerBuf: Point...
  • jinzhili
  • jinzhili
  • 2006年02月23日 11:35
  • 1359

EVC下文件夹/文件操作

//======================================================================== //TITLE: //    EVC实现拷贝文...
  • abin_gha
  • abin_gha
  • 2010年08月19日 22:57
  • 1081

EVC下Ftp遍历下载所有文件夹

 EVC下Ftp遍历下载所有文件夹(原创)本文讨论在Evc下遍历ftp站点的文件并下载,google了很多天,找到相关资料,但在evc下应用的很少,此文总结方法并应用到evc,以共享。      ft...
  • liugy1126
  • liugy1126
  • 2007年04月05日 11:18
  • 4044

WINAPI 编程获取文件版本信息

WINAPI 编程获取文件版本信息cheungmine本文演示如何使用win32 api 编写获得文件描述和产品版本。很简单的小程序。下面就是全部代码:test.c//// test.c// by c...
  • cheungmine
  • cheungmine
  • 2009年04月15日 13:01
  • 4121

C++ 如何读取文件的版本信息

C++ 如何读取文件的版本信息 有些时候,我们需要知道程序调用的库或者某个exe文件的版本信息(或其他相关属性信息时)。这时就需要考虑到如何去读取这些文件的版本信息呢?     从万能的网上查到了Ve...
  • yaoshenjie
  • yaoshenjie
  • 2016年09月27日 21:54
  • 2825

windows获取.exe文件版本号

先贴代码,直接可用,windows QT刚刚接触,研究了接近一个下午==: QString GetEXEVersion() { #pragma comment(lib, "Version") ...
  • u012861268
  • u012861268
  • 2015年08月19日 19:26
  • 620
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EVC获取文件的版本信息的方法
举报原因:
原因补充:

(最多只允许输入30个字)