Windows 7 将文件安装到原始用户';通过Windows Vista/7上的Inno安装程序设置“我的文档”文件夹
在Inno安装脚本的Windows 7 将文件安装到原始用户';通过Windows Vista/7上的Inno安装程序设置“我的文档”文件夹,windows-7,windows-vista,uac,inno-setup,Windows 7,Windows Vista,Uac,Inno Setup,在Inno安装脚本的[Run]部分,有一个标志runasoriginaluser,允许脚本以原始用户身份运行进程: 生成的进程将使用 (通常为非高架) 启动的用户的凭据 初始设置(即“预UAC 对话框“凭据”) 对于{userdocs}shell文件夹常量是否有等效的标志或解决方法? 这显然是Inno安装程序(以及其他安装程序)中的一个已知限制,但我希望有人知道解决方法 摘自Inno安装帮助文件: “用户”常量指的是 运行安装程序的用户的配置文件。 此用户通常与 当前已登录用户,请使用 注意“用
[Run]
部分,有一个标志runasoriginaluser
,允许脚本以原始用户身份运行进程:
生成的进程将使用
(通常为非高架)
启动的用户的凭据
初始设置(即“预UAC
对话框“凭据”)
对于{userdocs}
shell文件夹常量是否有等效的标志或解决方法?
这显然是Inno安装程序(以及其他安装程序)中的一个已知限制,但我希望有人知道解决方法
摘自Inno安装帮助文件:
“用户”常量指的是
运行安装程序的用户的配置文件。
此用户通常与
当前已登录用户,请使用
注意“用户”常量
我想到的解决方法是使用外部脚本执行数据复制,并在
NextButtonClick
事件函数的wpredy
页面中使用ExecAsOriginalUser
函数调用脚本
如果有人感兴趣,我会提供更多细节。您的方法不正确 有两种正确的方法:
最低
:
[Setup]
PrivilegesRequired=lowest
然后“用户”常量将正确引用当前用户的文件夹看 有关其他类似问题,请参阅
话虽如此,您可以使用(或
[Run]
部分中的)执行外部复制实用程序(,)
ExecAsOriginalUser(
“cmd.exe”,“/c xcopy.exe”源文件“%APPDATA%”,
'',SW_HIDE,ewwaitunterminated,ResultCode);
有关此方法的更多详细信息,请参见类似问题
尽管如此,如果安装程序是直接从高处启动的(与提升本身相反),上述操作将不起作用。无论如何,它在这种情况下都无法工作。看见因此,请坚持上述方法。您希望在“我的文档”文件夹中安装哪些文件?我这样问是因为这不是一个通常用于安装文件的位置。从很多方面来说,这是一个非传统的安装。这是一个税收征收系统,大约有50个用户使用。我们每年发送几次程序更新(不需要将任何内容写入“我的文档”文件夹)。但是,我们每年需要发送两次更新的数据文件。偶尔我们会遇到一个新的税务员,他需要安装一个完整的程序(而不是更新)。在过去,我们有三个不同的过程来处理这些场景(数据文件更新、程序更新和程序安装)。我们正在尝试使用一个Inno安装程序“安装”来完成这三项工作。这种方法不起作用。我已经在这个问题中发布了原因。当安装程序正常运行时,该方法确实适用于该用户。当用户明确执行“以管理员身份运行”时,它会更改游戏。不过,最好还是练习一下。