繁体   English   中英

如何获取任务管理器(非进程)中显示的应用程序列表

[英]How can I get list of Applications as shown in Task Manager (Not Processes)

我正在尝试获取使用Windows应用程序当前正在运行的应用程序的列表。

    using System.Diagnostics;
    Process[] processes = Process.GetProcesses();
        List<string > listProc=new List<string>() ;
        foreach (Process p in processes)
        {
            listProc.Add(p.ProcessName );               
        }
        string joined = string.Join(",", new List<string>(listProc).ToArray());
        ScriptingObject.WriteLogMessage("List of Processes: " + joined , true);

我也试过这个:

    if (!String.IsNullOrEmpty(p.MainWindowTitle))
            {
                listProc.Add(p.MainWindowTitle);

            }

这些可以很好地列出Windows任务管理器列出的进程,但是如何查看“应用程序”选项卡下列出的“应用程序”?

第一个选项比第二个选项列出的进程更多,如果以管理员身份运行,我看到的进程甚至更多,但仍看不到任务管理器列出的所有应用程序。

我认为我正在寻找的应用程序可能被描述为子窗口。

如果您只想注册Window可见的那些进程,可以尝试一下,

if (p.MainWindowHandle != IntPtr.Zero)
        {
            listProc.Add(p.MainWindowTitle);

        }
Process[] processes = Process.GetProcesses();
List<string > listProc=new List<string>() ;
foreach (Process p in processes)
{
    if (p.MainWindowHandle.ToInt32()>0)
    {
        listProc.Add(p.MainWindowTitle);
    }               
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM