プロが教えるわが家の防犯対策術!

バックアップをCドライブからEドライブにとるために
ROBOCOPY C:\ E:\ /e /xo
とバッチプログラムを組んでおりがVB2005で作成したForm上のボタンをクリックするとバッチプログラムが実行されるようになっています。
その時にForm上に進行具合を表示させたいです。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

System.Diagnostics.Process.Start("ROBOCOPY C:\ E:\ /e /xo")


End Sub
labelを配置してコピー中は「バックアップ中です」、コピー終了後には「完了しました」と表示させたいです。

違う方法でも構わないのですが、とりあえず作業中、完了わかればいいです。

どなたかご教授願います。

A 回答 (3件)

Processクラスのインスタンスを使用し、WaitForExit()メソッドを使用します。



Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start("ROBOCOPY C:\ E:\ /e /xo") 'バッチプログラムのプロセスをpとしておく
p.WaitForExit() 'バッチ処理が終わるまで待機

'終了後の処理を書く

ただ、この場合は画面が応答なし状態になるみたいです。

参考URL:http://dobon.net/vb/dotnet/process/openfile.html
    • good
    • 0

System.ComponentModel.BackGroundWorker


を使ってみるとか。
    • good
    • 0

Label1.Text = "バックアップ中です"


System.Diagnostics.Process.Start("ROBOCOPY C:\ E:\ /e /xo")
Label1.Text = "完了しました"

でいいのかな?

この回答への補足

>System.Diagnostics.Process.Start("ROBOCOPY C:\ E:\ /e /xo")>
>.Label1.Text = "完了しました"
これですとバッチプログラムの完了後に完了しましたとはでないですよね?

補足日時:2007/04/11 12:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!