gpt4 book ai didi

C++ VisualStudio 获取文件版本信息

转载 作者:行者123 更新时间:2023-11-30 02:57:44 28 4
gpt4 key购买 nike

我下载了这门课http://www.codeproject.com/file/VersionInfo.asp

我用它从我当前运行的几个程序中获取文件信息。

当我想从我编写的程序中获取信息时,它工作正常,但我无法获取“chrome”或我的“visual studio”的文件信息。

当我查询我的应用程序的产品名称时,我得到“Todo:ProductName”,因为它尚未设置 ;)

但是当我查询 chrome.exe 的 productName 时,我什么也没有得到。

有没有人知道为什么?

编辑:我调试了一下,问题就在这里。

BOOL CFileVersionInfo::Open( IN LPCTSTR lpszFileName )
{
if( lpszFileName == NULL )
ASSERT_RETURN( FALSE );

Close();
if( !GetVersionInfo( lpszFileName ) || !QueryVersionTrans() )
Close();

return m_bValid;
};

当输入“chrome.exe”时,GetVersionInfo( lpsz...) 返回 0

编辑 2:是的,chrome.exe 有一个产品名称字段。

例子:chrome.exe - 文件描述:谷歌浏览器 - 类型:应用 - 文件版本:23.0.1271.97 - 产品名称:谷歌浏览器 - 产品版本:23.0.1271.97 - 版权所有:..blabla... - 大小:1.18MB - 修改日期:some_date - 英语语言 - 原始文件名:chrome.exe

编辑 3:我怎样才能得到exe的完整路径?我只有进程 ID。目前我正在遍历所有进程并搜索我的 processId。

到目前为止感谢您的回答:-)

最佳答案

How can I get the full path to the exe?

使用OpenProcess()获取进程的 HANDLE 然后使用 QueryFullProcessImageName()获取exe的完整路径。

记得检查GetLastError()的结果以确定失败的原因。

关于C++ VisualStudio 获取文件版本信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14254359/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com