• ベストアンサー

CreateProcessでコンソールアプリケーションを起動するには

コンソールアプリケーションの中で、CreateProcess関数を用いて、自分自身のアプリケーションを起動したところ、次の結果になりました。 ・CreateProcess関数自体は成功する ・タスクマネージャで確認すると自分自身が2つ起動されている ただし、コンソールアプリケーションのウィンドウは1つしか開かず、そのウィンドウを2つのアプリケーションで共有しているかのように動作します(printfによるメッセージが2重に表示されるなど)。 使用言語はVC++ .NET 2008で、デバッガによる動作をさせています。 詳しい方、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.2

dwCreationFlagsにCREATE_NEW_CONSOLEを指定するとどうなりますでしょうか。

_hitoshi_
質問者

お礼

お礼が遅れてすみません。 おっしゃる通りの方法でうまくいきました。 ありがとうございました。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

VC++上で実行すると自動でコマンドプロンプトが開くので誤解されてるようですがコマンドプロンプトとプログラムは別のものです 普通はコマンドプロンプトを起動させそこからプログラム名を打ち込んでプログラムを起動させます CreateProcessでコマンドプロンプト画面は作られません

_hitoshi_
質問者

お礼

お礼が遅れ申し訳ありません。 引数dwCreationFlagsにCREATE_NEW_CONSOLEを指定したら2つの画面を作れました。 回答ありがとうございました。

関連するQ&A