运行外部程序并退出调用程序

时间:2018-08-21 20:27:59

标签: vb.net external

在程序的关闭过程中(恰好在运行Application.exit之前)我需要运行一个外部程序来传递参数并退出调用程序。 名为(FilmDB_Update.exe)的程序具有覆盖主程序或dll库的任务​​。 我尝试使用“ process.start”技术,但显然,调用程序仍在使用中,不允许我覆盖它。 这是我写的代码:

Private Sub AggiornaPgm()
    Dim ws_file As String = "FilmDB_Update.exe"
    Dim ws_proc_param As String = """" + ws_working_path + """ " + ws_temp_path
    Dim ws_fullPath As String = Path.Combine(ws_temp_path, ws_file)

    If File.Exists(ws_fullPath) Then

        File.Copy(ws_fullPath, ws_file, True)
    End If

    Dim proc As New System.Diagnostics.Process()
    proc = Process.Start(ws_file, ws_proc_param)
End Sub

我想尝试使用shell命令,但是无法将参数传递给被调用的程序。 你们还有其他想法吗? 谢谢

马塞洛(Marcello)

按照艾哈迈德(Ahmed)的建议,我在调用的程序中添加了对调用过程的测试。

    p = Process.GetProcessesByName(ws_calling_pgm)
    While p.Count > 0

        Threading.Thread.Sleep(3000)
        p = Process.GetProcessesByName(ws_calling_pgm)
    End While

    p = Nothing

当我退出While循环时,调用过程终止。我不明白为什么尽管不再存在该过程,但仍在使用主程序。

0 个答案:

没有答案