2010-07-05 68 views
5

我有一個銷售了12年的VB6應用程序。有時我有用戶難以讓應用程序運行。數據寫入到/ My Documents中,因此安裝文件(EXE等)將進入C:\ Program Files(或C:\ Program Files(x86))。阻止UAC虛擬化?

的修復他們的問題是啓動應用程序,儘管它看起來像是掛,然後顯示在任務管理器,查看進程,右鍵單擊我的應用程序的過程,並取消UAC虛擬化。然後我讓他們修理安裝,一切都很好。

爲什麼我的過程入門下UAC虛擬化投入,如何防止這種情況的出現?我也使用InstallShield 2010 Professional來創建安裝,我不確定它是否與安裝程序或應用程序本身有關。

回答

9

爲了防止虛擬化,添加一個清單給應用程序。無論您是作爲InVoker還是需要管理員,您都不會再獲得虛擬化。我猜測因爲應用程序可以正常工作而不升級,因此吸入器會更好。

你可以把foo.exe.manifest在同一文件夾中的exe,或將其嵌入,其中有喜歡做的4個字節清單多長一些棘手的東西。 This question涵蓋了一些嵌入的血淋淋的細節。

+0

謝謝你的信息。有關如何創建此清單的任何鏈接? – Neal 2010-07-05 18:14:36

+1

最簡單的形式,它只是一個命名yourexename.exe.manifest並放在同一文件夾中yourexename.exe XML的文件。有關內容的示例,請參閱http://csi-windows.com/toolkit/manifest-template等。 'requestedPrivileges'部分是重要的方面。 – 2010-07-05 22:14:33