Qt Installer Framework:如何将我的程序添加到Windows系统变量PATH?

时间:2017-03-30 07:43:18

标签: qt-installer

安装程序后,我需要安装程序将程序路径添加到Windows系统变量PATH。怎么做到这个?

安装人员必须这样做而不是我。

UPD:

并且必须通过卸载删除程序路径。

UPD2:

现在我试图这样做:

function Component()
{
    installer.installationFinished.connect(this, Component.prototype.installationFinishedPageIsShown);
    installer.uninstallationFinished.connect(this, Component.prototype.uninstallationFinishedPageIsShown);
}

Component.prototype.installationFinishedPageIsShown = function()
{
    try {
        if (installer.isInstaller() && installer.status == QInstaller.Success) {
            installer.executeDetached("set", "PATH=%PATH%;@TargetDir@");
        }
    } catch(e) {
        console.log(e);
    }
}

Component.prototype.uninstallationFinishedPageIsShown = function()
{
    try {
        if (installer.isUninstaller() && installer.status == QInstaller.Success) {
            installer.executeDetached("set", "PATH=%PATH:;@TargetDir@=%");
        }
    } catch(e) {
        console.log(e);
    }
}

但它不起作用:(

2 个答案:

答案 0 :(得分:0)

我还对executeDetached函数(OS X环境)的参数进行了很多努力。

因为显然,当使用字符串' inline'时,字符会被转义。 对我而言,它通过将参数移动到单独的javascript变量来工作,例如:

var args = "PATH=%PATH:;@TargetDir@=%"
installer.executeDetached("set", args);

甚至

var args = ["PATH=%PATH:;@TargetDir@=%"]
installer.executeDetached("set", args);

没有验证,但希望它能指出你或其他人正确的方向。

另外,将executeDetached包装在console.log()中帮助我调试了很多东西!

答案 1 :(得分:-1)

在桌面上,右键单击“计算机”图标。 从上下文菜单中选择“属性”。 单击“高级系统设置”链接。 单击“环境变量”。 ... 在Edit System Variable(或New System Variable)窗口中,指定PATH环境变量的值。