我使用VB.NET,我需要关闭(或杀死)以前的所有运行 程序...并且只保留最近的运行。
如何?这很接近......但它会杀死所有人。
Dim thisRun As System.Diagnostics.Process = System.Diagnostics.Process.GetCurrentProcess(
Dim pList() As System.Diagnostics.Process = System.Diagnostics.Process.GetProcessesByName("MyPrg.exe")
For Each eachRun As System.Diagnostics.Process In pList
If (Not thisRun.Equals(eachRun)) Then eachRun.Kill() ' Kill all other runs, but not this current one
Next eachRun
答案 0 :(得分:1)
而不是:
If (Not thisRun.Equals(eachRun)) Then eachRun.Kill()
尝试:
If (Not thisRun.Id = eachRun.Id) Then eachRun.Kill()
此处的Equals运算符尝试将当前进程的实例与其他进程匹配,这些进程在单独的AppDomain中永远不会匹配,直到在具有不同实现的Process类中覆盖.Equals
方法。您应该按Process.Id