2016-05-16 141 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)