Windows 10:兼容性功能错误?

Windows 10:兼容性功能错误?,windows,compatibility,Windows,Compatibility,我的安装程序通过注册表为应用程序设置兼容模式(适用于所有用户): 不过,Windows 10忽略了这一点,-在我打开属性/兼容性选项卡、手动取消选择“以管理员身份运行”并重新选择之前,没有UAC提示。另一种解决方案是为当前用户创建注册表项: [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "C:\\Program Files (x86)\\Program\\Program

我的安装程序通过注册表为应用程序设置兼容模式(适用于所有用户):

不过,Windows 10忽略了这一点,-在我打开属性/兼容性选项卡、手动取消选择“以管理员身份运行”并重新选择之前,没有UAC提示。另一种解决方案是为当前用户创建注册表项:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Program Files (x86)\\Program\\Program.exe"="RUNASADMIN"

为什么会这样?我在Win 7下仅创建HKLM注册表项时没有遇到任何问题-系统始终识别所需的兼容性选项。

可能是您正在做的事情需要添加~和空间。 比如“~RUNASADMIN”。 这对我有用。
关于这方面还有更多的讨论。

这些注册表项是否有正式的文档记录以满足您的需要?没有,但它们正被广泛使用(例如,GOG在其安装程序中)。此外,该网站还讨论了关键问题:为什么你认为微软不会违反他们从未签署过的合同?你为什么不按照文件规定的路线,而是使用应用程序清单(例如,通过使用链接器选项)?我没想到会发生什么。我只是好奇,这个改变是有意的还是一个bug。是的,您描述的解决方案很可能是最好的。如果需要为应用程序设置兼容性标志,您可以使用Microsoft application compatibility Toolkit创建一个.sdb文件,该文件可以通过
sdbinst
命令安装。(但在这种特殊情况下,并且假设您能够重建有问题的可执行文件,您应该使用IInspectable建议的清单。)
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Program Files (x86)\\Program\\Program.exe"="RUNASADMIN"