[英]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.