[Windows] 奇怪的「此程式可能並未正確安裝」問題

[Windows] 奇怪的「此程式可能並未正確安裝」問題

最近在測試專案時,發現其中一個程式在 Windows 7 上執行完之後,

有時候會跳出「此程式可能並未正確安裝」的訊息,有時候又不會…

就像下面的視窗:

pca

 

研究了好一陣子,終於試出來,

因為我們那個程式是放在網頁上給人下載後執行,

要從 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 跳出錯誤訊息:

HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionAppCompatFlagsCompatibility AssistantPersisted

 

像在本例中,用 regedit 修改後如下:  

pca2  

 

實務上來說的話,可以讓該程式在執行結束之前,

先去增加一個這個登錄值,就沒有問題了~(當然這看起來比較不像正解就是了)

(本頁面已被瀏覽過 1,080 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料