我在为我的模式扫描仪做研究,但我想到了这个问题。
我看到的模式扫描器需要一个过程的处理程序,但是我所做的方式
Process[] P = Process.GetProcessesByName("pName");没有P.Handle,我去了msdn,但在那里它说有。但为什么我的不知道?
这两行代码有什么区别?
Process P = Process.GetProcessesByName("pName")[0];
Process[] P = Process.GetProcessesByName("pName");发布于 2017-08-17 22:36:51
这将获得第一个名为“pName”的进程:
Process P = Process.GetProcessesByName("pName")[0];请注意,这将导致“索引超出界限”异常,如果没有任何。
这将获取名称为“pName”的所有进程的列表(实际上是数组):
Process[] P = Process.GetProcessesByName("pName");注意,如果没有异常,这不会导致异常;它只会返回一个空数组。
对于后者,如果希望进行第一次匹配,则可以像前者一样对其进行索引:
Process[] P = Process.GetProcessesByName("pName");
if (P.Length > 0)
{
Process process = P[0]; //Get the first one
}
else
{
Log("No such process!");
}或者(以我的方式)使用LINQ:
Process p = Process.GetProcessesByName("pName").FirstOrDefault();
if (p != null)
{
//Do something with the process
}https://stackoverflow.com/questions/45745870
复制相似问题