我有一个VB6应用,我已经卖了超过12年了。有时,我的用户很难让应用程序运行。数据写入到/My文档中,因此除了安装文件(可执行文件等)之外什么都没有。进入C:\Program Files (或C:\Program Files (x86))。
他们的问题的解决方法是启动应用程序,即使它看起来挂起了,然后显示任务管理器,查看进程,右键单击我的应用程序的进程,并取消选中UAC虚拟化。然后我让他们修复安装,一切都很好。
为什么我的进程被置于UAC虚拟化之下,我如何防止这种情况发生?我也使用InstallShield 2010专业版来创建安装,我不确定它是否与安装程序或应用程序本身相关。
发布于 2010-07-06 01:16:57
若要防止虚拟化,请向应用程序添加清单。无论你说的是asInvoker还是requireAdministrator,你都不会再得到虚拟化。我猜asInvoker会对你更好,因为这个应用程序在没有提升的情况下工作得很好。
您可以将foo.exe.manifest放在与可执行文件相同的文件夹中,或者嵌入它,这会有一些棘手的东西,比如使清单成为4字节长的倍数。This question涵盖了嵌入的一些血淋淋的细节。
https://stackoverflow.com/questions/3181157
复制相似问题