c# - 如何获取进程 “type”(应用程序,后台进程或Windows进程)

标签 c# windows types process diagnostics

我正在尝试获取类型为“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/

相关文章:

javascript - 比较客户端和服务器系统时间的差异(Javascript 和 C#)

c# - Fluent API 中如何保证方法顺序?

c# - 我如何要求 Owin/Katana 将 header 写入输出流?

windows - 测试跨 LAN/WAN 的文件传输速度

c# - 是否可以使用特定文件名创建 blob 触发的 azure 函数?

PHP 启动 : Unable to load dynamic library

windows - 为 Java 代码创建 MSI

Java SQLData - 使用列表/数组转换为用户对象?

types - 连接视频片段时 ffmpeg 显示错误 : "Media type mismatch between the parsed_overlay_20"

java - 有人在实际应用程序中使用 short 和 byte 原始类型吗?