コンソールだけ閉じたい – プログラミング – Home

コンソールだけ閉じたい
 
通知
すべてクリア

[解決済] コンソールだけ閉じたい


aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
Topic starter  

質問を投稿した直後に自分で答えに気づいて自己レス…なんてことがたびたびあって申
し訳ないですが、どうかご容赦を…。

Win32 SDK でプログラムを作っているのですが、その中で AllocConsole でコンソール
を表示している部分があります。
ある処理を開始したらコンソールを表示し、その処理中の出力をコンソールに吐き出
し、処理が終了したらコンソールを閉じる、というのを目指しています。

で、処理中にコンソールが閉じられたら処理を中断するようにしたいのですが、何もし
ないとプログラムが終了してしまいます。
これを回避するために SetConsoleCtrlHandler を使っているのですが、
CTRL_CLOSE_EVENT に反応して TRUE を返しても、プロセスを終了するかどうか問い合わ
せるダイアログが出てしまいます(と、MSDN にもしっかり書いてあるのですが)。

MSDN を見ると、CTRL_CLOSE_EVENT を受け取った HandlerRoutine は、どうやってもプ
ロセスを終了するしか道がないように思えます。
なんとかこれを回避する手段はないものでしょうか?
それとも、コンソールを単に出力用のウィンドウとしては利用するなということなので
しょうか。

#Win32 API って、こういうところ、意地が悪いですよね。
#テキストファイルから一行読むとかできないし(関係ないか)。


引用
トピックタグ
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
Topic starter  

忘れてました。

環境は WinXP Pro SP1 + VS.NET 2002 Academic です。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

まっとうな回避策はなさそうですね。
コンソールに出力する部分を別プロセスにしてしまうとか、
コンソールにそっくりなウィンドウを作るとか。


返信引用
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
Topic starter  

むう、やはりそうですか…。
わかりました。ありがとうございました。

#でも、エディットボックスって追記して行くの難しいし
#コンソールなら何も考えなくても追記できるのにな…


返信引用
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 23年前
投稿: 178
 

 エディットボックスならこんな感じ、、、
http://www24.cds.ne.jp/~neg/pro/piyo1/cedit/log.html


返信引用
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
Topic starter  

おお、これで追記ができたとは!
ねぐさん、ありがとうございます!
も一回解決、っと。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました