Qt Installer Framework: Как добавить мою программу в системную переменную Windows PATH?

После того, как моя программа установлена, мне нужен установщик для добавления пути к системной переменной 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 ответа

Я также много боролся с аргументами функции 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() очень помогло мне в отладке!

На рабочем столе щелкните правой кнопкой мыши значок "Компьютер". Выберите Свойства из контекстного меню. Нажмите на ссылку Расширенные настройки системы. Нажмите Переменные среды.... В окне Изменить системную переменную (или новую системную переменную) укажите значение переменной среды PATH.

Другие вопросы по тегам