everyone 发表于 2009-10-12 01:58:33

获取EXE版本号、公司名、描述等信息的代码出了问题

<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">我参考一些资料学了一下<font style="BACKGROUND-COLOR: #ffffff" face="Verdana">获取EXE版本号、公司名、描述等信息的方法。并写了代码。但第二个按钮本来应该显示公司名称,却显示了数字。没找出哪里有问题。请看看代码。</font></font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana"></font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">部分资料:</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana"></font>&nbsp;</p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana"><font style="BACKGROUND-COLOR: #ffffff" face="Verdana"><a href="http://support.microsoft.com/kb/160042/zh-cn">http://support.microsoft.com/kb/160042/zh-cn</a></font></font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&nbsp;</p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana"><a href="http://www.vckbase.com/document/viewdoc/?id=1642">http://www.vckbase.com/document/viewdoc/?id=1642</a></font></p>
<p>&nbsp;</p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana"><a href="http://www.hudong.com/wiki/VerQueryValue">http://www.hudong.com/wiki/VerQueryValue</a></font></p>
<p><br/>&nbsp;</p></font>

马大哈 发表于 2009-10-12 02:43:50

<p><font face="Verdana">VerQueryValue</font>第三个参数返回的是个指针.</p>
<p>&nbsp;</p>
<p>而你后面根据这个指针复制字符串时,却把这个指针转化为字符串了...........</p>
<p>&nbsp;</p>
<p><font face="Verdana">lstrcpy</font>的第二个参数的声明,改为As Long就行了,不然VB会自动转换为字符串再传进去.</p>

everyone 发表于 2009-10-12 02:52:25

<p>多谢!</p>

everyone 发表于 2009-10-12 03:08:02

如果EXE文件有版本信息但没有公司名称,点击第二个按钮会显示乱码。不知如何判断是否有公司名称?

马大哈 发表于 2009-10-12 03:21:09

http://www.m5home.com/bbs/thread-3094-1-1.html

我刚刚上传了一个以前收藏的模块,你可以参考一下它的代码.

你可以使用eXeScope打开一个文件,看看其"资源--->版本"中的内容,是个树型结构.

其实GetFileVersionInfo返回的那个缓冲区里就是这些所有的内容了,完全可以自己去解析,只是比较麻烦而已.

在你代码里面GetFileVersionInfo调用后,使用"Debug.Print StrConv(FileInfoData(), vbUnicode)"就可以看到了.

everyone 发表于 2009-10-12 23:59:24

谢谢!

upring 发表于 2015-7-16 13:02:23

不错不错 感谢分享
页: [1]
查看完整版本: 获取EXE版本号、公司名、描述等信息的代码出了问题