使用安装程序框架,我想为我的应用程序创建一个安装程序。 该应用程序由管理员在PC上安装。然后,该应用程序由不同的用户使用。
在安装程序中,我创建了从可执行文件到开始菜单的快捷方式。
这是通过以下命令在 installscript.js
中完成的:
component.addOperation(“CreateShortcut”, “@TargetDir@/application.exe”,
“@StartMenuDir@/Name of Application.lnk”, “workingDirectory=@TargetDir@”);
现在的问题是,安装程序仅在当前用户的开始菜单中创建快捷方式,例如管理员。
此外,卸载程序仅对当前用户可见。当我与其他用户登录时,应用程序在开始菜单中不可见。
如何生成一个快捷方式,该快捷方式在所有用户的开始菜单中都可见?
答案 0 :(得分:2)
尝试
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
答案 1 :(得分:0)
这对我有用:
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");
}
}
请注意,该脚本会在创建快捷方式之前创建相应的开始菜单目录。