2011-04-12 29 views
0

我正在尝试使用MsiGetProductInfo函数获取我的win fomrs应用程序的安装版本号。我试图改变代码,我对这个post发现,但我得到的是看文本永鼎,当我改变我的电话的功能,像这样如何使用MsiGetProductInfo获取安装的版本号c#winforms 4.0?

MsiGetProductInfo("{9806C9BE-59D4-4DEE-802F-0E492023DE8A}", "INSTALLPROPERTY_VERSIONSTRING", builder, ref len); 

它的安装与标准4.0的C#WinForms项目vs2010安装项目。客户端机器是赢7和胜XP XP

回答

0

你检查了函数的返回值?如果它返回一个错误,那么缓冲区可能被填充了垃圾。

这是可能的返回值列表,从MSDN页here

返回值

ERROR_BAD_CONFIGURATION 的配置数据已损坏。

ERROR_INVALID_PARAMETER 传递给函数的参数无效。

ERROR_MORE_DATA 缓冲区太小而无法容纳请求的数据。

ERROR_SUCCESS 该功能已成功完成。

ERROR_UNKNOWN_PRODUCT 该产品未广播或卸载。

ERROR_UNKNOWN_PROPERTY 该属性无法识别。

注意如果正在查询的应用程序被公布并且未安装,MsiGetProductInfo函数将返回ERROR_UNKNOWN_PROPERTY。

相关问题