DOBON.NET DOBON.NETプログラミング掲示板過去ログ

プロセスの継続取得について

環境/言語:[WinXP Pro SP2 MSVisualStudio.NET 2003 Pro .NET Framework 1.1]
分類:[.NET]

皆様はじめまして、すいすいといいます。

このサイトの【DOSコマンドを実行し出力データを取得する】を参考にVB.NETでバッチファイルを起動させるプログラムを組みました。
しかしサンプルの状態ではイン・アウトの時に一回しかデータを取得できないのですが、これを継続して取得する方法はありませんでしょうか?

具体的には【携帯動画変換君】の変換中のパラメータ表示(○%完了など)のようにしたいのです。
(あちらのソフトはffmpegにパラメータを渡してその出力中データを取得しています。)

以下は今のところ私が組んだコードです。
説明が幼稚で申し訳ありませんが、ご教示ください。m(_ _)m

Dim psi As New System.Diagnostics.ProcessStartInfo
With psi
If CheckBox6.Checked = True Then
.CreateNoWindow = False
ElseIf CheckBox6.Checked = False Then
.CreateNoWindow = True
End If
.RedirectStandardInput = True
.RedirectStandardOutput = True
.UseShellExecute = False
.FileName = runPath & "encRun.bat"
End With
Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(psi)
p.EnableRaisingEvents = True
p.SynchronizingObject = Me
AddHandler p.Exited, AddressOf pEnc_Exited

Private Sub pEnc_Exited(ByVal sender As Object, ByVal e As EventArgs)
'終了したときの処理
End Sub
■No19676に返信(すいすいさんの記事)
> このサイトの【DOSコマンドを実行し出力データを取得する】を参考にVB.NETでバッチファイルを起動させるプログラムを組みました。
> しかしサンプルの状態ではイン・アウトの時に一回しかデータを取得できないのですが、これを継続して取得する方法はありませんでしょうか?
>
> 具体的には【携帯動画変換君】の変換中のパラメータ表示(○%完了など)のようにしたいのです。
> (あちらのソフトはffmpegにパラメータを渡してその出力中データを取得しています。)

「携帯動画変換君」というソフトを知りませんのでなんともいえませんが、もし出力を非同期で読み込みたいということであれば、.NET 2.0から追加されたProcess.BeginOutputReadLineメソッドが使えるかもしれません。
管理人様、ご返答ありがとうございます。

> 「携帯動画変換君」というソフトを知りませんのでなんともいえませんが、もし出力を非同期で読み込みたいということであれば、.NET 2.0から追加されたProcess.BeginOutputReadLineメソッドが使えるかもしれません。

.NET2.0ですか。
現状で.NET1.1の開発環境以外弄れませんのでまだ先になるかもしれませんが、
.NET2.0の環境に移行したら教えていただいたメソッドを試してみたいと思います。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板