如何在C++builder中获取设备的文件版本号? - C++ Builder / Windows SDK/API
USB转UART的一个驱动,安装完毕后在C:\WINDOWS\SYSTEM32\DRIVERS\ser2pl
文件名是这个,先要读取这个文件中的 File Ver信息,这个文件一共有
产品版本
产品名称
公司
内部名称
文件版本
之类的信息
只要能读取到其中的文件信息即可,例如现在的版本信息是2.0.0.26 读到这个即可
会根据这个信息来判断当前的软件驱动版本是否需要更新
有哪位好心人,能指点下迷津.
最好有示例源码的.
拜谢,拜谢.
[解决办法]
1. 读取文件
2. 解析字串
我也是新手。。就当是来接分的。。
[解决办法]
String __fastcall TForm8::GetFileVersion(String FileName)
{
int iVerInfoSize;
char *pBuf;
AnsiString asVer="";
VS_FIXEDFILEINFO *pVsInfo;
unsigned int iFileInfoSize = sizeof( VS_FIXEDFILEINFO );
iVerInfoSize = GetFileVersionInfoSize(FileName.c_str(), NULL);
if(iVerInfoSize!= 0)
{
pBuf = new char[iVerInfoSize];
if(GetFileVersionInfo(FileName.c_str(),0, iVerInfoSize, pBuf ) )
{
if(VerQueryValue(pBuf, "\\",(void **)&pVsInfo,&iFileInfoSize))
{
asVer = IntToStr( HIWORD(pVsInfo->dwFileVersionMS) )+".";
asVer += IntToStr( LOWORD(pVsInfo->dwFileVersionMS) )+".";
asVer += IntToStr( HIWORD(pVsInfo->dwFileVersionLS) )+".";
asVer += IntToStr( LOWORD(pVsInfo->dwFileVersionLS) );
}
}
delete pBuf;
}
return asVer;
}
//---------------------------------------#include <vcl.h>#pragma hdrstop#include "Unit1.h"//---------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------String GetFileVersion(String FileName){int iVerInfoSize;char *pBuf;AnsiString asVer="";VS_FIXEDFILEINFO *pVsInfo;unsigned int iFileInfoSize = sizeof( VS_FIXEDFILEINFO );iVerInfoSize = GetFileVersionInfoSize(FileName.c_str(), NULL);if(iVerInfoSize!= 0) { pBuf = new char[iVerInfoSize]; if(GetFileVersionInfo(FileName.c_str(),0, iVerInfoSize, pBuf ) ) { if(VerQueryValue(pBuf, "\\",(void **)&pVsInfo,&iFileInfoSize)) { asVer = IntToStr( HIWORD(pVsInfo->dwFileVersionMS) )+"."; asVer += IntToStr( LOWORD(pVsInfo->dwFileVersionMS) )+"."; asVer += IntToStr( HIWORD(pVsInfo->dwFileVersionLS) )+"."; asVer += IntToStr( LOWORD(pVsInfo->dwFileVersionLS) ); } } delete pBuf; }return asVer;}//--------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){}//---------------------------------------