我的安裝程序引導應用程序在開始時會進行一系列MSI調用,以便從MSI(安裝哪些版本,安裝哪些功能,屬性值,路徑等)獲取信息。在進行這些MSI調用時,Windows安裝程序會彈出一個窗口,其上帶有一個「取消」按鈕。我的代碼有陷阱無處不在,以檢查是否由MSI調用返回的錯誤代碼是ERROR_INSTALL_USEREXIT,以便引導應用程序可以停止,如果用戶單擊取消,但我所見過的所有返回值,即使當我知道我確信我設法點擊取消按鈕(我實際上看到按鈕被按下),是ERROR_SUCCESS。如何判斷用戶在調用MSI函數時是否單擊取消?
有什麼方法可以100%確定地告訴用戶是否在進行這些MSI呼叫時點擊取消?如果沒有,在MSI通話過程中是否有辦法隱藏取消按鈕,這樣用戶就不會被誤認爲他可以在當時取消這個錯誤信念? (在快速機器上,這不是什麼大問題,因爲對話消失得相當快,但是在慢速機器上,用戶實際上有機會點擊按鈕。)
謝謝。雖然有點極端,它確實實現了我之後的工作,主要是爲了擺脫Cancel按鈕,因爲我似乎無法得到一個可靠的方法來確定它是否被點擊。 – RobH 2010-11-02 17:13:20