[Windows] 奇怪的「此程式可能並未正確安裝」問題
最近在測試專案時,發現其中一個程式在 Windows 7 上執行完之後,
有時候會跳出「此程式可能並未正確安裝」的訊息,有時候又不會…
就像下面的視窗:
研究了好一陣子,終於試出來,
因為我們那個程式是放在網頁上給人下載後執行,
要從 IE -> 下載檔案 -> 執行,這樣一連串下來才會出現問題,
如果從 IE 下載檔案之後,問你要不要執行時選否,
之後再自己去執行那個檔案時,是不會有問題的…
參考了一下 MSDN: Program Compatibility Assistant (PCA) in Windows Vista 上的說明,
似乎是因為 Windows 認為我們執行的是一個安裝程式,
而執行完之後卻沒有在新增/移除程式中,增加新的程式,因而認為有錯誤…
而被認為是安裝程式的原因還不是很清楚,
MSDN 上雖然看起來可能是因為 manifest 中有要求 administrator 的權限,
但有要求 administrator 權限的程式多的是,應該不是只看這個,
而且目前看起來是要從 IE 執行的才會跳出來,所以應該還有其他條件…
要解決這個問題,應該至少有下列兩種作法:
1. 不要讓 Windows 認為我們執行的這個是個安裝程式
這應該比較像本例的正解,因為我們那個的確不是安裝程式…
也許把 manifest 中的 administrator 權限拿掉就好了,
不過還沒有試過,而且這改法可能也不適合需要 administrator 權限的程式…
2. 修改登錄值,讓 Windows 不要顯示錯誤訊息
只要在下面的登錄機碼中,新增一個名稱是檔案路徑,值是 1 的 REG_DWORD,
就可以避免 Windows 跳出錯誤訊息:
像在本例中,用 regedit 修改後如下:
實務上來說的話,可以讓該程式在執行結束之前,
先去增加一個這個登錄值,就沒有問題了~(當然這看起來比較不像正解就是了)