• 締切済み

実行コマンドのプロセス管理

バックアップを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を配置してコピー中は「バックアップ中です」、コピー終了後には「完了しました」と表示させたいです。 違う方法でも構わないのですが、とりあえず作業中、完了わかればいいです。 どなたかご教授願います。

みんなの回答

  • neko_noko
  • ベストアンサー率45% (146/319)
回答No.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
  • unamana19
  • ベストアンサー率62% (56/89)
回答No.2

System.ComponentModel.BackGroundWorker を使ってみるとか。

回答No.1

Label1.Text = "バックアップ中です" System.Diagnostics.Process.Start("ROBOCOPY C:\ E:\ /e /xo") Label1.Text = "完了しました" でいいのかな?

TRIPLE-G
質問者

補足

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

関連するQ&A