启动程序 并获得了进程PID 在后面想停止进程 发现如果之前进程意外停止 程序就报错了... 该如何判断呢? 百度好多都是用进程名来判断的. 如果多个进程同名呢?
------解决思路----------------------
即使进程同名 pid也不会一样的
Dim name = "notepad" '进程的名称
Dim pid As Integer = -1
Dim pp As Process() = Process.GetProcessesByName(name)
For i As Integer = 0 To pp.Length - 1
If (pp(i).ProcessName = name) Then
pid = pp(i).Id
Console.WriteLine("记事本进程的ID :" & pid)
End If
Next
pp = Process.GetProcesses()
Dim ishave As Boolean = False
For i As Integer = 0 To pp.Length - 1
If (pp(i).Id = pid) Then
ishave = True
Console.WriteLine("进程的名称 :" & pp(i).ProcessName)
End If
Next
If ishave = False Then
Console.WriteLine("未到到pid进程")
Else
Console.WriteLine("存在pid进程")
End If
'更改PID
pid = 100
pp = Process.GetProcesses()
ishave = False
For i As Integer = 0 To pp.Length - 1
If pp(i).Id = pid Then
ishave = True
Console.WriteLine("进程的名称 :" & pp(i).ProcessName)
End If
Next
If ishave = False Then
Console.WriteLine("未到到pid进程")
Else
Console.WriteLine("存在pid进程")
End If
------解决思路----------------------
不要直接Process.Start()
而是这样
Process p=new Process();
p.StartInfo=xxxxx;
p.Start();
保存住这个变量p,然后你就可以用它来判断进程的状态,避免每次都去遍历进程列表对比进程ID
------解决思路----------------------
.net是面向对象的编程语言
你保存住进程对象,然后直接判断状态就好
PID其实根本不需要
------解决思路----------------------
try catch