防止UAC虚拟化?

Nea*_*eal 5 uac

我有一个我已经销售超过12年的VB6应用程序.有时我的用户很难让应用程序运行.数据写入进入/我的文档,所以只有安装文件(EXE等)进入C:\ Program Files(或C:\ Program Files(x86)).

解决问题的方法是启动应用程序,即使它显示为挂起,然后显示任务管理器,查看进程,右键单击我的应用程序进程并取消选中UAC虚拟化.然后我让他们修复安装,一切都很好.

为什么我的流程被置于UAC虚拟化之下,如何防止这种情况发生?我还使用InstallShield 2010 Professional来创建安装,我不确定它是否与安装程序或应用程序本身有关.

Kat*_*ory 9

要防止虚拟化,请向应用程序添加清单.无论你是asInvoker还是requireAdministrator,你都不会再获得虚拟化了.我猜测asInvoker会更好,因为应用程序工作正常,没有提升.

你可以把foo.exe.manifest放在与exe相同的文件夹中,或嵌入它,这有一些棘手的东西,比如使清单长4个字节的倍数.这个问题涵盖了嵌入的一些血腥细节.