首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在QT installer框架中区分每个用户和系统范围的安装?

如何在QT installer框架中区分每个用户和系统范围的安装?
EN

Stack Overflow用户
提问于 2019-12-28 19:55:14
回答 1查看 461关注 0票数 0

我正在使用一个叫pgModeler的应用程序,它的当前版本提供了一个基于QT安装程序框架的安装程序。该安装程序在Windows上的问题是,它只安装start menu entries per-userregisters the app itself per-user。对于像我这样使用显式管理员用户进行系统维护与非管理员用户进行日常工作的人来说,这是一个问题。重要的是,实际上使用了两个不同的用户名(Administratortschoening),而不是Windows的默认行为,以限制一个用户只使用UAC。

在切换到QT installer框架之前,已经使用了Inno Setup,其中包含一些distinguishing between administrative and system-wide vs. per-user installation的概念。切换只是简单地以管理员身份执行安装程序,其他一切都是自动工作的,而QT不再是这样。

我在QT中也找到了指向不同路径的pre-defined constants,例如开始菜单:

代码语言:javascript
复制
UserStartMenuProgramsPath
AllUsersStartMenuProgramsPath

我还没有发现的是,是否有像Inno这样的自动模式提供?就像一个简单的设置,告诉安装程序选择系统范围的开始菜单和东西,实际上是安装程序能够区分的所有东西。或者开发人员需要自己构建合适的路径吗?如下例所示:

代码语言:javascript
复制
component.addOperation("CreateShortcut", "@TargetDir@/pgmodeler.exe", "@StartMenuDir@/pgModeler.lnk"

代码语言:javascript
复制
component.addOperation("CreateShortcut", "@TargetDir@/pgmodeler.exe", "@AllUsersStartMenuProgramsPath@/@StartMenuDir@/pgModeler.lnk"

在后一种情况下,如何在控制面板中的每个用户和系统范围的Programs and Features之间进行切换?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-01-06 04:09:34

可以使用支持truefalse的名为AllUsers的设置在当前用户和所有用户的安装之间进行切换。重要的是在哪里以及什么时候提供它:一种方式是在使用以下代码调用安装程序时非常早:

代码语言:javascript
复制
installer.exe AllUsers=true

这样,选择开始菜单组的GUI实际上已经显示了所有用户可用的所有条目,而不仅仅是用户私有开始菜单的条目,就像以前一样。另一种方式是setting values on the installer at runtime。但重要的是,这也需要在路径得到解析之前发生。示例可以在以下位置看到:

代码语言:javascript
复制
function Controller()
{
    [...]
        //store all users and online/offline info
        installer.setValue("allUsers", isAdmin ? "true" : "false");
        installer.setValue("isOffline", installer.isOfflineOnly() ? "true" : "false");
    [...]
}

https://github.com/Skycoder42/QtIFW-Advanced-Setup/blob/master/installer/config/controller.js

这些东西在过去也得到了增强,尽管我还没有在文档中找到任何关于它到底是什么以及如何使用它的解释。

https://bugreports.qt.io/browse/QTIFW-124

此外,该软件未在Programs and Features中正确注册,它仅发生在管理员模式下:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59510656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档