强制现有应用程序始终在启用UAC虚拟化的情况下运行

Dal*_*tan 7 uac

我见过几个与此相反的问题; "我如何禁用虚拟化?" 那不是我的问题.我想强制应用程序在启用虚拟化的情况下运行.

我有一个在Windows XP下运行得很好的应用程序,但是,因为它将其配置写入其工作目录("C:\ Program Files(x86)"的子文件夹),它在Windows 7下无法正常工作.如果我使用任务管理器打开UAC虚拟化,它保存其配置就好了,但当然它无法加载该配置.

我不想将其设置为以管理员身份运行,因为它不需要这些权限.我想将其设置为在启用UAC虚拟化的情况下运行.

发现了一个建议,我在注册表中添加了一些魔法HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags.为了完整性我也把它放进去Wow6432Node,但都没有任何效果.

Rom*_* R. 5

文件系统在某些情况下是虚拟化的,那么当您的应用程序不符合条件时,您的问题是如何仍然打开它?MSDN不太可能:

在以下方案中,虚拟化不可用:

  • 虚拟化不适用于已升级并使用完整管理访问令牌运行的应用程序.

  • 虚拟化仅支持32位应用程序.非提升的64位应用程序在尝试获取Windows对象的句柄(唯一标识符)时,只会收到拒绝访问的消息.本机Windows 64位应用程序需要与UAC兼容并将数据写入正确的位置.

  • 如果应用程序包含具有请求的执行级别属性的应用程序清单,则会为应用程序禁用虚拟化.