各Exec
、ExecWait
、ExecShell
、nsExec::Exec
、nsExec::ExecToLog,
nsExec::ExecToStack
、ExecDos
とExecCmd
、どちらを使用するかなど。
私が知っているさまざまな実行呼び出しを投稿しました。将来の訪問者に役立つように、包括的なリストを作成しようとしています。
Exec
:アプリケーション、コンソール、ファイルなど、呼び出された文字列をそのまま実行します。
ExecWait
:Exec
と同様に実行されますが、プロセスが終了するまで待機します。
ExecShell
:それは何のためですか?
nsExec::Exec
:Exec
またはExecWait
と同様ですが、コマンドプロンプトのみで、コンソールウィンドウを開かずに使用します。プロセスが終了するのを待つかどうかはわかりません。 nsExec::Exec
は子プロセスの終了を待機しますか?
nsExec::ExecToLog
:The documentation says ExecToLog
は、プレーンnsExec
と似ていますが、ログウィンドウに出力します。 それはどういう意味ですか、ログウィンドウとは何ですか?
nsExec::ExecToStack
:ドキュメントには、ExecToStack
はプレーンnsExec
に似ていますが、出力をスタックにプッシュします。わかった。
ExecDos
:nsExec::ExecToStack
と同じですが、さらに(そうではない?)
a。アプリケーションを実行するための標準入力として機能する文字列パラメーターを取ります。
b。同期/非同期モードの両方で動作します。
c。それはセクション外で動作します-.onInitチェックアウトの場合。
ExecCmd
:ExecDos
と同じですが、これらは必要ありません
ExpandEnvStrings $3 %COMSPEC%
ExecDos::exec /C
部品。 私は正しいですか?
1)2)3)
Exec
およびExecWait
は内部で CreateProcess を使用し、プログラムとバッチファイルのみを起動できます。
ExecShell
は ShellExecute を使用します。これは、登録済みのファイルタイプ(.txt .chmなど)およびURLも起動できることを意味します。また、開始するプログラムがUACで昇格する必要がある場合にも使用する必要があります。
4)
nsExecはstdoutをリダイレクトするため、子プロセスの実行時にコンソールウィンドウは表示されません。そして、はい、待っています。
5)
Instfilesページのログウィンドウ。
7)
はい、ExecDosとExecCmdはどちらもnsExecのより高度なバージョンです。
8)
正しい