【发布时间】:2015-10-03 19:09:55
【问题描述】:
我正在尝试在我的游戏中制作服务器启动器。我必须使用不同的配置启动 GameServer.exe。
GameServer.exe GameServer1.cfg
GameServer.exe GameServer2.cfg
GameServer.exe GameServer3.cfg 等
这是我必须启动每个 .exe 和 .cfg 的当前代码
Private Sub GS1_Click(sender As Object, e As EventArgs) Handles GS1.Click
Dim path As String = Directory.GetCurrentDirectory()
Dim gameservercfg As String = GameServer1.Text
Dim newpath As String = path + ("\")
System.Diagnostics.Process.Start(newpath + "GameServer.exe ", gameservercfg)
End Sub
这是我通过进程名称重新启动它的代码。
Private Sub GSRES_Click(sender As Object, e As EventArgs) Handles GSRES.Click
Dim path As String = Directory.GetCurrentDirectory()
Dim gameservercfg As String = GameServer.Text
Dim newpath As String = path + ("\")
Dim p() As Process
p = Process.GetProcessesByName("GameServer")
If p.Count > 0 Then
' Process is running
Process.GetProcessesByName("GameServer")(0).Kill()
System.Diagnostics.Process.Start(newpath + "GameServer.exe ", gameservercfg)
Else
' Process is not running
MsgBox("GameServer is not running!")
End If
End Sub
使用该代码,它会重新启动随机游戏服务器。
问题是,我如何通过 ProcessID 而不是 Process name 来做到这一点?
【问题讨论】:
-
Process.Start()返回一个Process对象。将它(或Id属性本身)保存在变量或列表中,然后使用保存的进程 ID 来终止您想要使用Process.GetProcessById()的确切进程。 -
@NateBarbettini 希望你能给我提供一个代码。我对 vb.net 很陌生。
-
问题中没有足够的信息来了解您的确切问题。为什么需要重新启动进程?你的程序应该如何知道要杀死哪一个?
-
@NateBarbettini 你在第一条评论中就有了想法,但不知道如何编码。
标签: vb.net process pid restart process.start