Qt Installer Framework - 在开始菜单中为所有用户创建快捷方式

Posted

技术标签:

【中文标题】Qt Installer Framework - 在开始菜单中为所有用户创建快捷方式【英文标题】:Qt Installer Framework - Create shortcut in Start Menu for all users 【发布时间】:2014-07-01 08:26:24 【问题描述】:

使用安装程序框架,我想为我的应用程序创建一个安装程序。 该应用程序由管理员安装在 PC 上。该应用程序随后被不同的用户使用。

在安装程序中,我创建了从可执行文件到开始菜单的快捷方式。

这是在 installscript.js 中通过以下命令完成的:

component.addOperation(“CreateShortcut”, “@TargetDir@/application.exe”, 
“@StartMenuDir@/Name of Application.lnk”, “workingDirectory=@TargetDir@”);

现在的问题是,安装程序仅在开始菜单中为当前用户创建快捷方式,例如管理员。

此外,卸载程序仅对当前用户可见。当我使用其他用户登录时,该应用程序在开始菜单中不可见。

如何生成一个快捷方式,所有用户都可以在开始菜单中看到该快捷方式?

【问题讨论】:

【参考方案1】:

试试

component.addOperation("CreateShortcut", "@TargetDir@/application.exe", "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\<Name of Application>.lnk");

事实上,有一个变量AllUsersStartMenuProgramsPath 可用,但我刚刚尝试过,它似乎坏了。使用它的链接放在C:\

installer.value("os") 一样,您应该在脚本中使用installer.value("AllUsersStartMenuProgramsPath")

查看最新文档:http://doc-snapshot.qt-project.org/qtifw-master/scripting.html

我认为应该在他们的错误跟踪器上打开一个错误:https://bugreports.qt-project.org/secure/Dashboard.jspa

【讨论】:

我今天对此进行了测试,只要我按照您的描述在 installer.value() 函数中使用 AllUsersStartMenuProgramsPath 变量,它就可以正常工作。但是“@AllUsersStartMenuProgramsPath@/foo.lnk”不起作用。 Windows 控制面板中Programs and Features 中的地址条目是否也是如此?【参考方案2】:

这对我有用:

Component.prototype.createOperations = function()

    component.createOperations();
    console.log("creating start menu entries");
    if (systemInfo.productType === "windows") 
        component.addOperation("Mkdir", "@StartMenuDir@")
        component.addOperation("CreateShortcut", "@TargetDir@/README.txt", 
            "@StartMenuDir@/README.lnk",
            "workingDirectory=@TargetDir@", 
            "iconPath=%SystemRoot%/system32/SHELL32.dll",
            "iconId=2", "description=Open README file");
    

请注意,该脚本会在创建快捷方式之前创建相应的开始菜单目录。

【讨论】:

事实上这并没有为所有用户创建一个条目,我误读了这个问题。我把它留在这里,以防它对其他人有所帮助。

以上是关于Qt Installer Framework - 在开始菜单中为所有用户创建快捷方式的主要内容,如果未能解决你的问题,请参考以下文章

在 Qt Installer Framework (QtIFW) 安装程序中安装 VC++ Redistributables?

Qt Installer Framework - 防止安装在非空文件夹中

使用Qt installer framework制作安装包(不知道是否适合Mac和Linux?)

Qt Installer Framework - 在开始菜单中为所有用户创建快捷方式

重要网址小记

重要网址小记