Qt 获取exe版本等详细信息

【Q tea 原创】 

Qt 获取exe版本等详细信息_第1张图片

    核心函数:VerQueryValue 

     VerQueryValue这个函数用于从版本资源中获取信息。调用这个函数前,必须先用GetFileVersionInfo函数获取版本资源信息。这个函数会检查资源信息,并将需要的数据复制到一个缓冲区里。

【Q tea 原创】    

参数 类型及说明

pBlock Byte,指定一个内存块第一个字节的地址。这个内存块包含了由GetFileVersionInfo函数取回的版本数据信息

lpSubBlock String,下述值之一:

"\" 获取文件的VS_FIXEDFILEINFO结构

"\VarFileInfo\Translation" 获取文件的翻译表

"\StringFileInfo\...." 获取文件的字串信息。参考注解

lplpBuffer Long,指定一个Long变量的地址,该变量用于装载一个缓冲区的地址。请求的版本信息最终会装载到那个缓冲区里

puLen Long,指定由lplpBuffer参数引用的数据值的长度,以字节为单位

   

返回值:Long,TRUE(非零)表示成功,如请求的信息不存在,或pBlock不属于有效版本信息,那就返回一个零

// por文件中引入Version.lib
// 必须要用,不然无法获取到exe的版本信息,调用相应函数会报错

unix|win32: LIBS += -lVersion

【Q tea 原创】

相关函数 传出exe文件的绝对路径 返回值为查找到的对应信息

QString Widget::GetFileVertion(QString fullName){
    DWORD dwLen = 0;
    char* lpData=NULL;
LPCWSTR  str_path;
str_path=fullName.toStdWString().c_str();
    BOOL bSuccess = FALSE;
    QString fileInfomation;
    DWORD vHandle=0;
    //获得文件基础信息 【Q tea  原创】
    //--------------------------------------------------------
    dwLen = GetFileVersionInfoSize( str_path, &vHandle);
    if (0 == dwLen)
    {
    qDebug()<<"获取版本字节信息失败!";
    return"";
    }
    qDebug()<<"版本信息字节大小:"<

【Q tea 原创】 

源文件下载地址:https://download.csdn.net/download/scz653037148/10739331

你可能感兴趣的:(Qt,Windows,API,exe)