请问有进程PID 该如何判断进程是否存在?

My-Yis 2015-07-05 02:42:59
启动程序 并获得了进程PID 在后面想停止进程 发现如果之前进程意外停止 程序就报错了... 该如何判断呢? 百度好多都是用进程名来判断的. 如果多个进程同名呢?
...全文
425 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lccheer 2015-07-06
  • 打赏
  • 举报
回复
try catch
於黾 2015-07-06
  • 打赏
  • 举报
回复
.net是面向对象的编程语言 你保存住进程对象,然后直接判断状态就好 PID其实根本不需要
於黾 2015-07-06
  • 打赏
  • 举报
回复
不要直接Process.Start() 而是这样 Process p=new Process(); p.StartInfo=xxxxx; p.Start(); 保存住这个变量p,然后你就可以用它来判断进程的状态,避免每次都去遍历进程列表对比进程ID
caoqinghua 2015-07-06
  • 打赏
  • 举报
回复
引用 2 楼 ZuoHuanShiZuoDong 的回复:
这虽说可以使程序继续运行...不过我主要是想知道怎么用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

My-Yis 2015-07-05
  • 打赏
  • 举报
回复
这虽说可以使程序继续运行...不过我主要是想知道怎么用PID确认进程是否存在.....
Poopaye 2015-07-05
  • 打赏
  • 举报
回复
加上try,catch不行吗?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧