VB.net自动重启应用程序

时间:2015-10-04 15:29:54

标签: vb.net process.start application-restart

我这里有一个代码可以启动一个进程,再次按下它会终止当前进程并启动一个新进程(重启)。

 Private Games As New Dictionary(Of String, Process)

Private Sub GS1_Click(sender As Object, e As EventArgs) Handles GS1.Click
    Dim gameservercfg As String = GameServer1.Text
    Dim Key As String = gameservercfg.ToUpper

    If Games.ContainsKey(Key) Then
        If Not Games(Key).HasExited Then
            Games(Key).Kill()
        End If
        Games.Remove(Key)
    End If

    Dim psi As New ProcessStartInfo
    psi.FileName = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "GameServer.exe")
    psi.WorkingDirectory = System.IO.Path.GetDirectoryName(psi.FileName)
    psi.Arguments = gameservercfg
    Games.Add(Key, System.Diagnostics.Process.Start(psi))
End Sub

我想要做的是,当gameserver.exe自身崩溃时如何让它自动重启?

1 个答案:

答案 0 :(得分:0)

在这种情况下可以使用的基本思想是将任何配置保存到磁盘上的文件中。然后使用

重新启动应用程序
System.Windows.Forms.Application.Restart()

在应用程序启动事件中加载保存配置的磁盘文件中的任何数据(如果有)。有关该主题的更多信息,您还可以阅读这些SO帖子 auto-restart-and-then-continue-the-sub-in-vb-net
application-restart-puzzling-behaviour-in-vb-net

此外,您可以(1)保存配置,(2)启动同一应用程序的新独立实例,(3)然后结束当前实例。
如果需要,请不要忘记在应用程序启动/重启时从保存的文件中加载已保存/默认配置。