0

vb.net の Async BackgroundWorker プロセスでコマンド ライン ユーティリティを実行するにはどうすればよいですか?

例:

Private Sub UpgradeButton_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UpgradeButton.Click
    BackgroundWorker1.RunWorkerAsync()
End Sub

Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork

    Dim MyWorkingDirectory = "C:\Windows\System32\"
    Dim MyFileName As String = "notepad.exe"
    Dim MyArguments As String = ""

    Dim myProcess As System.Diagnostics.Process = New System.Diagnostics.Process()
    myProcess.StartInfo.WorkingDirectory = MyWorkingDirectory
    myProcess.StartInfo.FileName = MyFileName
    myProcess.StartInfo.Arguments = MyArguments
    myProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden
    myProcess.Start()
    ' Wait until it ends.
    myProcess.WaitForExit()
    ' Close the process to free resources.
    myProcess.Close()

End Sub
4

1 に答える 1

0

コードが機能しない理由がわかりません-機能しないと思います-そして、別のことを提案したいと思います.BackgroundWorkerの代わりにスレッドを使用してください. アプリケーションを起動するだけでよい場合は、単純なスレッドを使用します。

Public Shared Sub ThreadProc()
    ''Starth the process here!
End Sub


Dim t As New Thread(AddressOf ThreadProc)
t.IsBackground = True
t.Start()

そして、開始されたスレッドが必要なプロセスを開き、メインスレッドがその実行を続けます。これがあなたが必要とする答えであることを願っています!

于 2012-07-22T12:28:19.950 に答える