我想以编程方式获取正在运行的(桌面)应用程序列表,然后将此列表显示给用户。它应该类似于 Windows 任务管理器中显示的应用程序列表。
如何在 C# 中创建它?具体来说,我需要一种方法来获取当前正在运行的应用程序列表。
最佳答案
您可以使用 Process.GetProcesses
method提供有关当前在您的计算机上运行的所有进程的信息。
但是,这会显示所有正在运行的进程,包括那些不一定显示在任务栏上的进程。所以你需要做的是过滤掉那些有空 MainWindowTitle
的进程。 .上面链接的文档解释了为什么这样做:
A process has a main window associated with it only if the process has a graphical interface. If the associated process does not have a main window (so that MainWindowHandle is zero), MainWindowTitle is an empty string ("").
因此,您可以使用类似于以下代码的代码,它会打印出(到控制台窗口)任务栏上可见的所有当前正在运行的应用程序的列表:
Process[] processes = Process.GetProcesses();
foreach (var proc in processes)
{
if (!string.IsNullOrEmpty(proc.MainWindowTitle))
Console.WriteLine(proc.MainWindowTitle);
}
关于c# - 如何获取当前正在运行的应用程序列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4395405/