我想以编程方式获取正在运行的(桌面)应用程序列表,然后我想将此列表显示给用户。它应该类似于Windows任务管理器中显示的应用程序列表。
我该如何在C#中创建这个功能?具体来说,我需要一种方法来获取当前正在运行的应用程序列表。
我该如何在C#中创建这个功能?具体来说,我需要一种方法来获取当前正在运行的应用程序列表。
Process.GetProcesses
方法 来提供关于当前在你的电脑上运行的所有进程的信息。MainWindowTitle
的进程。上面链接的文档解释了其中的原理:
因此,您可以使用以下代码之类的代码,它将打印出(到控制台窗口)当前所有可见的正在运行的应用程序列表:仅当进程具有图形界面时,进程才与其关联一个主窗口。如果关联的进程没有主窗口(因此MainWindowHandle为零),MainWindowTitle为空字符串("")。
Process[] processes = Process.GetProcesses();
foreach (var proc in processes)
{
if (!string.IsNullOrEmpty(proc.MainWindowTitle))
Console.WriteLine(proc.MainWindowTitle);
}
EnumWindows
函数枚举顶级窗口。调用此函数并指定回调函数的指针。回调函数将为屏幕上的每个顶级窗口调用一次。 - Cody GrayMonitorFromWindow
函数,传递一个窗口句柄(HWND
)并获取一个监视器句柄(HMONITOR
)。您可以在.NET中调用该函数,或者直接从WinForms使用System.Windows.Forms.Screen.FromPoint
。 - Cody Gray