我正在尝试获取所有类型的进程列表" app" (而不是"后台进程"或" Windows进程")。
不幸的是,虽然我知道......
var processList = Process.GetProcesses();
将为我提供系统上运行的所有进程的列表,我不知道如何获得'类型'这个过程。 '流程'确实有一种方法' GetType'但它似乎并没有引用"类型"我指的是,并且TaskManager在上面的图片中引用。
有谁知道如何获得任务管理器引用的值" type"变成给定过程的变量?
注意:C#。
答案 0 :(得分:1)
我找不到确切的答案,但我发现有什么帮助我。您需要使用流程类的 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)。
答案 1 :(得分:1)
遇到同样的问题,并在以下链接中找到答案:https://devblogs.microsoft.com/oldnewthing/20171219-00/?p=97606