2016-09-22 8 views
0

Я хотел бы запустить некоторые команды оболочки во время использования QT Install Framework, чтобы восстановить информацию, необходимую для настройки самой установки (например, перечисление сетевого адаптера).Запустить процесс оболочки во время QT Install Framework и дождаться результата

В настоящее время IFW, по-видимому, позволяет подготовить готовые операции оболочки (addOperation, addElevatedOperation), которые запускаются только после процесса настройки установщика.

Я хотел бы, вместо этого, запустить их во время установки. Например. выполнение операции на одной из страниц установщика и получение результата. Что-то вроде:

Component.prototype.pageChanged = function (page) { 
    if (page === QInstaller.ReadyForInstallation) { 
    component.runOperation(...) 
} 
}; 

ответ

0

Я хотел бы запустить внешний процесс, и ждать его результата в моем установщиком на базе Qt Framework Installer. Как я могу это сделать?

Эту проблему можно решить либо с native API (например, Windows) или с помощью Qt QProcess::WaitOnFinish (более универсальный). Поэтому, вероятно, вам нужно как-то обойти API-интерфейс установщика с кодом C++.

+0

QProcess был моим альтернативным вариантом. Но, как вы писали, это требует изменения кода IFW, которого я бы хотел избежать. – Pierluigi

2

Установщик Framework установки QT предоставляет возможность решить эту проблему.

Вы можете использовать installer.performOperation, работающий под управлением ConsumeOutput.

ConsumeOutput позволяет запускать внешний процесс и хранить выход процесса в ключ установщика.