我正在尝试获取类型为“app”(而不是“Background Process”或“Windows Process”)的所有进程的列表。
不幸的是,尽管我知道...
var processList = Process.GetProcesses();
会为我提供系统上运行的所有进程的列表,但我对如何获取进程的“类型”一无所知。 'Process'确实具有方法'GetType',但它似乎未指向我所指的“类型”,而TaskManager在上图中所指。
有谁知道如何获得任务管理器称为给定进程的变量中的“类型”的值?
注意:C#。
最佳答案
我找不到确切的答案,但是我找到了对我有帮助的东西。您需要使用类类的 MainWindowHandle 属性。
var processes = Process.GetProcesses().Where(pr => pr.MainWindowHandle != IntPtr.Zero);
foreach (Process proc in processes)
Console.WriteLine(proc.ProcessName);
警告
如果您尝试获取 proc.MainModule.FileName ,则可能会看到Win32Exception异常。为避免此问题,我将项目编译为x64(您的项目->属性->构建->平台目标-> x64)。
关于c# - 如何获取进程 “type”(应用程序,后台进程或Windows进程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27086816/