2016-09-22 10 views
0

QTインストールフレームワークの使用中にいくつかのシェルコマンドを実行して、インストール自体を構成するために必要な情報を復元したい(ネットワークアダプタのリストなど)。QTインストールフレームワーク中にシェルプロセスを実行し、結果を待つ

現在、IFWは、インストーラの設定プロセスの後にのみ実行される缶詰のシェル操作(addOperationaddElevatedOperation)の準備を可能にしているようです。

私は代わりに、インストールのセットアップ中にそれらを実行したいと思います。例えば。インストーラページの1つで操作を実行し、結果を取得します。私はQtのインストーラフレームワークに基づいて、私の のインストーラにその結果を外部プロセスを実行し、待つしたい

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

答えて

0

:よう 何か。どうやってやるの?

これは、native API(Windowsの例)またはQt QProcess::WaitOnFinish(より普遍的な)のいずれかで解決できます。だから、C++コードでインストーラのAPIをどうにかして動作させる必要があるでしょう。

+0

QProcessは私の別の選択肢でした。しかし、あなたが書いたように、それは私が避けたいものであるIFWコードを変更する必要があります。 – Pierluigi

2

QTインストールフレームワークインストーラは、この問題を解決する方法を提供します。

installer.performOperationは、ConsumeOutputの操作を実行して使用できます。

ConsumeOutputを使用すると、外部プロセスを実行し、プロセス出力をインストーラキーに格納できます。

関連する問題