2017-09-22 11 views
0

Windowsコマンドライン(cmd)から直接Qtアプリケーションを実行すると、GUIが実行されている間もすぐにシェルに戻ります。私は親が終了する前に2番目のプロセスを作成すると仮定します。私は、バッチファイルやPythonスクリプトから、間接的にかかわらず、Qtアプリケーションを実行する場合コマンドラインから実行するとQtアプリケーションがブロックされない

Qt application running while the terminal is at a new shell prompt

、それは同じように動作しません。それブロックアプリケーションが実際に終了するまで:

Qt application running while the terminal blocks

は、この標準のQt振る舞いですか?私はドキュメンテーションや他の場所でそれについて言及することはできません。カスタマイズすることはできますか?コマンドラインから実行するとアプリケーションが常にブロックされることを望みます。

+0

私はそれがコンソール出力のコンテキストに関係していると思います。修正はQtではなくプロセスの起動に固有のものでなければなりません。 – AlexanderVX

+0

なぜアプリケーションをインタラクティブなプロンプトでブロックする必要がありますか? 'AttachConsole(ATTACH_PARENT_PROCESS)'を介して親コンソールに接続していますか?さもなければ、私がこれについて見ることができる唯一の理由は、 '%errorlevel%'に終了コードを設定することです。ほとんどの場合、GUIアプリケーションや 'start'を介して新しいコンソールを作成するコンソールアプリケーションの場合、CMDを待機させるのは意味をなさないので、デフォルトの動作がそこにあります。 – eryksun

答えて

1

これは、通常のWindowsの動作です。コンソールコンソールプログラムで

が上待っています。 GUIプログラムはそうではありません。ルールはstart /?で指定されています(NT4からWindows 2000への新しい動作の記述)。

従ってStart /w c:\windows\notepad

+0

ああ、そうです。私は特にQtを探し続けていました。それは見つけにくいものでした。これはすでに[スーパーユーザー]で議論されているが判明(https://superuser.com/questions/908664/have-the-command-prompt-launch-an-application-like-notepad-and-block-until-it-それは) –

関連する問題