- - PR -
Process.Startでコンソールアプリを起動する際、立ち上がるDOS窓のウィンドウサイズやフォントを変えたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-20 12:48
こんにちは〜。
早速本題なのですが、 Windowsアプリケーションからあるコンソールアプリケーションを起動したいのですが、 そのコンソールアプリが下記のような感じでバックスペースを使って 同じところに処理の進捗を表示しています。
過去スレにDOS窓を非表示にする方法は見つけたのですが、 今回はこの進捗が見えるようにしたく、まぁ何もしなければ普通にDOS窓が立ち上がるのですが、 ちょっとかっこわるいなぁと(^^; 進捗が見えないよりは見えた方が良いので、方法がなければこのままでもいっか、とは思ってるのですが、 このDOS窓の大きさやフォントを変えたりすることってできるのでしょうか? あるいはこのようにバックスペースを使って同じところに処理の進捗を表示する コンソールアプリの標準出力をリアルタイムで拾って Windowsフォーム上のどこかに表示する方法でも良いのですが… ちなみにWindowsアプリ側の言語はVB2005ですが、もしサンプルコードなどがあればC#でも構いません。 もしご存知でしたらご教授ください。よろしくお願いします。m(_ _)m [ メッセージ編集済み 編集者: ぼのぼの 編集日時 2006-06-20 13:03 ] | ||||
|
投稿日時: 2006-06-20 14:48
Windowsフォームに表示する方法ですが、以下のコードで実現できると思います。
HasExitedプロパティの代わりにWaitForExit(int32)メソッドでも可能です。 その場合でも、whileの位置は変えないでください。 理由はStandardOutputプロパティのヘルプを読んでいただければ分かると思います。 | ||||
|
投稿日時: 2006-06-20 15:17
うにくまさん、ご回答ありがとうございます。
早速試してみたのですが、これだと「リアルタイムでは」拾えないみたいです。 ループは1回しか回らず、最初のReadLine()で "処理中です... 1%\b\b2%\b\b3%\b\b4%\b\b{以下同様に100%まで}" みたいな文字列がいっぺんに返ってきてしまいます(−公− [追記] ん?よく考えたらReadLine()を使わなきゃいいのか… Read()を使ってちょっと試して見ます。 [ メッセージ編集済み 編集者: ぼのぼの 編集日時 2006-06-20 15:29 ] | ||||
|
投稿日時: 2006-06-20 15:43
Read()を使ったらできました!
ありがとうございました。m(_ _)m
| ||||
|
投稿日時: 2006-06-20 16:39
コンソールアプリケーションの修正が可能ならば、以下の方法もあります。
| ||||
|
投稿日時: 2006-06-20 16:50
おお〜、なるほど!
しかし残念ながら、コンソールアプリのコードはあくまでサンプルで、 実際はフリーソフトなんです(^^; #ちなみに、勉強用に作った個人で使うためのツールだったりしますw |
1