2010-04-21 90 views
1

我的安装程序将该应用程序安装到“Program files \ MyApp”,即在该位置运行更改文件时的应用程序。在Vista上,默认情况下会引起UAC问题。Inno安装程序 - 安装应用程序到Program Files,允许以admin身份运行

我希望用户能够运行MyApp,而不必在每次运行应用程序时佩戴或对抗UAC屏幕。如果他们必须通过UAC来安装应用程序,那没问题,尽管仍然不是最佳的。

我想我有这个成立,但它不工作:

[Setup] 
PrivilegesRequired=admin 
AppName=My App 
AppVerName=My App 1.0 
DefaultDirName={pf}\MyApp 
DefaultGroupName=MyApp 
UninstallDisplayIcon={app}\bin\MyApp.ico 
OutputDir=..\Installer 
ChangesAssociations=yes 

[Dirs] 
Name: "{app}\"; Permissions: everyone-modify 
Name: "{app}\redist"; Flags: deleteafterinstall; 

具体来说,我认为Name: "{app}\"; Permissions: everyone-modify将让普通用户运行它,在Program Files文件\ MyApp的去除UAC保护。

我正在随机选取值,有人可以提出一些改变吗?再次,目标是,一旦安装,非管理员帐户中的普通用户即使将文件保存在程序文件中,也可以运行,而不需要UAC踢入。作为辅助,安装本身不应该太疯狂......单个提示输入管理员密码或UAC授权。

回答

1

请勿在{pf}下安装。请改为安装到用户可写入的位置(例如,{localappdata})。
http://www.kinook.com/blog/?p=53

+0

这不是一个真正的答案,程序的标准安装位置是PF ...此外,我的用户还可以选择位置。我认为安装程序可以删除我安装的PF子文件夹中的UAC保护。 – 2010-04-24 08:47:08

+0

这实际上是一个最佳答案,因为它解决了这两个问题(安装或运行时没有UAC提示)。将程序安装到用户可写路径(Chrome,ClickOnce应用程序等)的做法已经不再常见了。我不会建议调整{pf}下文件夹的权限,但如果您坚持,请尝试如下所示: 权限:users-modify powerusers-modify admins-modify system-modify – 2010-04-24 14:20:33

+0

首先,Chrome是一个不好的例子,我的看法。它更新时不告诉你!无论如何,不​​应该询问用户他们想要安装应用程序的位置吗? – 2010-04-24 16:00:50

1

您应该更改您的应用程序,以便将共享数据保存在其他文件夹中。

授予写权限的任何用户在PF文件夹包含可执行代码(EXE,DLL的等)是安全问题(邪恶的用户可以修改exe文件,并等待管理员运行)

Alernativly你可以将文件存储在PF的子文件夹中,并且只授予对其的写入权限,这样您的可执行文件就很安全。

相关问题