我的安装程序引导应用程序在开始时会进行一系列MSI调用,以便从MSI(安装哪些版本,安装哪些功能,属性值,路径等)获取信息。在进行这些MSI调用时,Windows安装程序会弹出一个窗口,其上带有一个“取消”按钮。我的代码有陷阱无处不在,以检查是否由MSI调用返回的错误代码是ERROR_INSTALL_USEREXIT,以便引导应用程序可以停止,如果用户单击取消,但我所见过的所有返回值,即使当我知道我确信我设法点击取消按钮(我实际上看到按钮被按下),是ERROR_SUCCESS。如何判断用户在调用MSI函数时是否单击取消?
有什么方法可以100%确定地告诉用户是否在进行这些MSI呼叫时点击取消?如果没有,在MSI通话过程中是否有办法隐藏取消按钮,这样用户就不会被误认为他可以在当时取消这个错误信念? (在快速机器上,这不是什么大问题,因为对话消失得相当快,但是在慢速机器上,用户实际上有机会点击按钮。)
谢谢。虽然有点极端,它确实实现了我之后的工作,主要是为了摆脱Cancel按钮,因为我似乎无法得到一个可靠的方法来确定它是否被点击。 – RobH 2010-11-02 17:13:20