如果由InnoSetup

时间:2016-09-21 11:20:04

标签: windows registry windows-8.1 inno-setup

我使用InnoSetup(v5.5.9)为我的应用程序创建一个安装程序。在inno-installer-script中,我使用以下语句使应用程序以admin-privileges开始:

Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers; \
ValueType: string; ValueName: {app}\{#MyAppExeName}; ValueData: "RUNASADMIN"; \
Flags: createvalueifdoesntexist uninsdeletekey; MinVersion: 6.2;

这适用于从Win7到Win10(所有x64)的所有测试机器。但是有些机器运行Win8.1(也是x64),应用程序似乎忽略了这个键。

我可以将错误追踪到以下内容:

右键单击application.exe并检查"以管理员身份运行"在兼容性下标志,它在注册表中设置上面提到的密钥,并在HKEY_USERS下设置相同的密钥,这是它实际从中读取密钥的位置。手动或使用InnoSetup在HKEY_LOCAL_MACHINE中设置密钥时,不会将其转到HKEY_USERS

有谁知道为什么会这样?

谢谢!

0 个答案:

没有答案