在Inno设置中,我PrivilegesRequired=none
。
如果用户具有管理权限,则此设置应提示UAC。
在Windows XP的某些计算机上,即使管理员已登录,UAC也不会收到提示,我通过检查IsAdminLoggedOn
设置对此进行了验证,我发现它已设置为{{1} }。
为什么会这样?
答案 0 :(得分:2)
如果IsAdminLoggedOn
返回True
,则安装程序已经以管理员权限(“已提升”)运行。
请注意,Windows XP中没有权限分离。如果您运行安装程序的用户是管理员,则您始终具有管理员权限。 Windows XP中没有UAC提示符。
您可以在Windows XP中获得的唯一提示是“运行方式”提示,允许您以其他用户(通常是管理员)的身份运行应用程序/安装程序。
通过使用(未记录和已弃用)PrivilegesRequired=none
,您实际上明确告诉Inno安装程序不要提升安装程序,即使它未启动也未提升。您通常无法获得UAC /运行方式提示仅仅是因为Windows内部启发式检测到您启动的.exe
是安装程序,可能需要提升。
有关详细信息,请参阅我的问题Make Inno Setup installer request privileges elevation only when needed。