Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的Delphi 6程序只在少数Windows 7系统(InnoSetup)上安装时触发管理员权限请求?_Windows_Delphi_Inno Setup_Uac_User Permissions - Fatal编程技术网

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

为什么我的Delphi 6程序只在少数Windows 7系统(InnoSetup)上安装时触发管理员权限请求?,windows,delphi,inno-setup,uac,user-permissions,Windows,Delphi,Inno Setup,Uac,User Permissions,我有一个Delphi 6程序,对于大多数用户来说,在没有管理员权限的用户帐户下运行时安装良好。但是,在某些系统上,它会触发管理员权限请求。不幸的是,我的不是其中之一,所以我很难诊断这个问题。我使用InnoSetup 5.1.9构建安装程序 我如何才能确定我需要对安装程序的配置进行哪些更改,以消除某些用户系统对管理员权限的需求?这给我的系统带来了麻烦,因为在安装过程中,某些程序数据文件被复制到管理员帐户的应用程序数据文件夹中。然后,当我的程序在用户帐户下启动时,无法找到这些文件,因为它们不在用户帐

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


我如何才能确定我需要对安装程序的配置进行哪些更改,以消除某些用户系统对管理员权限的需求?这给我的系统带来了麻烦,因为在安装过程中,某些程序数据文件被复制到管理员帐户的应用程序数据文件夹中。然后,当我的程序在用户帐户下启动时,无法找到这些文件,因为它们不在用户帐户应用程序文件夹中,而用户帐户应用程序文件夹正是这些文件的预期位置。

这是由于默认指令值造成的,默认情况下,该值配置为需要管理员提升。如果您不需要,只需在InnoSetup脚本中将此指令的值显式更改为如下内容:

[Script]
PrivilegesRequired=lowest
参考文献:

PrivilegesRequired设置为Lower时,安装程序将不会请求 运行管理权限,即使它是由的成员启动的 管理员组。此外,卸载信息根密钥 将始终是HKEY_当前_用户,以及Shell的“通用”形式 文件夹常量映射到“用户”表单,即使 管理权限可用


它安装在哪里?(目录)@AustinHenley-到应用程序数据文件夹。在少数情况下,当用户需要管理员权限进行安装时,在安装期间转到C:\Users\admin\AppData\Roaming\,在运行时转到C:\Users\Bob\AppData\Roaming\。在大多数情况下,在安装和运行期间,目录为C:\Users\admin\AppData\Roaming\。当它工作时,他们使用的是什么操作系统,还有Windows 7?为了测试安装程序,请使用标准用户。您肯定是在使用管理员用户进行测试。@DavidHeffernan。你说得对。我惊讶地发现,我一直在用我的Windows7 64位分区运行一个管理员帐户。我已经创建了一个标准用户,现在正在重试所有操作。谢谢。为什么到目前为止它只在我的Windows 7用户的一台电脑上触发请求?这是一个UAC设置,默认情况下在大多数Windows7框上是宽松的吗?我检查了InnoSetup脚本,但没有明确的PrivilegesRequired语句,因此您是对的,它将使用默认级别。@Robert为您的测试创建一个标准用户。您的用户帐户将是管理员用户。@Robert,无论如何,我强烈建议您将InnoSetup升级到最新版本。您使用的是v.5.1.9,它是。我很幸运得到了我的答案,因为您使用的版本将默认的
PrivilegesRequired
指令值更改为
admin
@TLama-是的,我看到了。我在阅读了你的答案后立即升级,因为我在5.1.9中没有看到“最低”特权选项。现在正在进行一个测试构建,谢谢。作为参考,它之所以有时能工作,而不是其他版本,是因为5.2.x是第一个包含Vista提升逻辑的版本(因为那是Vista首次推出的时候)。由于使用了比这更旧的版本,Windows根据其内部的模糊启发法决定是否升级,而不是以这种或那种方式被明确告知,这意味着结果将根据安装的修补程序,甚至其他安装程序之前运行的安装程序而有所不同。升级到更新的版本修复了这一问题。