2016-05-16 200 views
1

至于现在,我正在改进日志记录在我的Inno Setup安装程序中,所以如果消费者会出现某种错误,我可以很容易地看到,出了什么问题。WbemObject.Terminate失败的原因

作为安装操作之一,我终止了应用程序进程(如果它正在运行)以正常覆盖文件。为了杀死应用程序,我使用了在问题Inno Setup Kill a running process中描述的方法 - 获取WbemObject并致电WbemObject.Terminate

至于现在,我想跟踪,如果Terminate成功。从我的测试中,我发现它实际上返回布尔值,表示应用程序是否成功终止。但是如果失败了,它只会返回“false”。我想知道更详细的原因。

那么,有没有办法获得WbemObject.Terminate的实际失败原因?

回答

1

你有什么,不是WbemObject,这是Win32_Process object

Win32_Process.Terminate method并(以帕斯卡Cardinal)返回uint32,不Boolean

返回0(零)的值,如果该过程被成功地终止,和任何其它数量指示错误。有关其他错误代码,请参阅WMI Error ConstantsWbemErrorEnum。一般HRESULT值,请参阅System Error Codes

成功完成(0)
拒绝访问(2)
权限不够(3)
未知故障(8)
找不到路径(9)
无效参数(21)
其他(22-4294967295)