为什么我的Delphi 6程序仅在少数Windows 7系统(InnoSetup)上安装时会触发管理员权限请求?

Rob*_*ler 2 windows delphi uac inno-setup user-permissions

我有一个Delphi 6程序,大多数用户在没有管理员权限的用户帐户下运行时安装得很好.但是,在某些系统上,它会触发管理员权限请求.不幸的是我的不是其中之一所以我很难诊断出这个问题.我使用InnoSetup 5.1.9来构建我的安装程序.

如何找出我需要更改安装程序配置的内容,以消除对某些人系统管理员权限的需求?这给我的系统带来了麻烦,因为在安装过程中,某些程序数据文件被复制到管理员帐户的应用程序数据文件夹中.然后,当我的程序在用户帐户下启动时,无法找到这些文件,因为它们不在用户帐户应用程序文件夹中,而应该在这些文件夹中.

TLa*_*ama 10

这是由于默认PrivilegesRequired指令值发生的,默认情况下配置为需要管理员提升.如果你不需要这个,只需将你的InnoSetup脚本,这个指令的值明确地改为这样:

[Script]
PrivilegesRequired=lowest
Run Code Online (Sandbox Code Playgroud)

来自参考:

PrivilegesRequired设置为最低时,安装程序将不会请求运行管理权限,即使它是由Administrators组的成员启动的.此外,卸载信息根密钥将始终为HKEY_CURRENT_USER,并且Shell文件夹常量的"常见"形式将映射到"用户"表单,即使管理权限可用也是如此.