11

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

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

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

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

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

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

如何生成一个快捷方式,它在所有用户的开始菜单中都可见?

4

2 回答 2

6

尝试

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

于 2014-07-28T15:46:36.323 回答
1

这对我有用:

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");
    }
}

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

于 2018-09-01T09:54:17.063 回答