C++Builder相談室 Part10
■ このスレッドは過去ログ倉庫に格納されています
0294デフォルトの名無しさん
NGNG質問文からてっきりコンソールアプリのフロントエンドみたいに、
子プロセスの出力をTMemoに取り込みたいのかと思ったんだけど、
リンク先を流し読みしたところ違うのかな?
残念ながらリンク先のBuilder版は寡聞にして知らない。
ただGUIアプリでは標準出力が使えないので…のように
説明されているけどWin32API使えば
AllocConsole() で標準出力用コンソールを開いて、
SetConsoleTitle() でキャプションを設定して、
SetConsoleTextAttribute() で文字色を設定して、
WriteConsole() でテキストを出力して、
FreeConsole() でコンソールを閉じる。
なかんじで簡単に実現できるわけで、これで充分な気も。
TMemoを持つログをとるアプリが常駐しててそいつにテキスト渡したい
というのなら、WM_COPYDATAで投げるなり、パイプかメールスロットか
ソケットで流すなりお好きな方法で。
コンソールアプリの出力取り込みが希望なら
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/creating_a_child_process_with_redirected_input_and_output.asp
ttp://www5.wisnet.ne.jp/~mercury/download/dosexec/dosexec.html
C++のソースあり
DosExecDlg.cpp内CDosExecDlg::ExecChildProcess()が
子プロセスの出力を取り込む処理なので、listOutput->Print()の処理を
TMemo::Add()とかに置き換える。
処理に時間が掛かるようなものはスレッド起こすなりなんなり。
(´・ω・)アチー
■ このスレッドは過去ログ倉庫に格納されています