按主题…我用Inno Setup做了一个Setup.exe安装到"{pf}{#MyAppName}"。在Win XP和Win 7上都是这样以管理员权限登录,但如果我以受限用户身份在win7上尝试,我就会得到这个错误信息:
"安装程序无法创建目录C:Program Files AppName".
该怎么办?我不希望(或需要)用户以管理员身份安装
如果您想安装到%ProgramFiles%
,您需要以管理员身份安装。普通用户没有对%ProgramFiles%
目录的写权限
如果安装到%ProgramFiles%
不是必需的,只需让用户选择一个目标目录,或者安装到{localappdata}
而不是{pf}
。保证{localappdata}
对于它的所有者是可写的。它展开为C:Users<user name>AppDataLocal
。
您也可以安装到{pf}
,如果运行admin和{localappdata}
,如果运行受限用户;使用IsAdminLoggedOn来决定。
如果必须安装到%ProgramFiles%
,您别无选择,只能以admin身份运行。要使其正常工作,请确保.iss文件没有定义privilesrequired选项,或者将其设置为admin
。然后,当非特权用户运行安装程序时,将出现UAC提示符,要求具有足够访问权限的凭据(除非UAC被禁用,在这种情况下,安装的唯一方法是Run As)。