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.