我正在尝试获取当前使用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任务管理器列出的进程,但是如何查看“应用程序”选项卡下列出的应用程序?
第一个选项列出了比第二个更多的进程,如果我以管理员身份运行,我会看到更多,但我仍然没有看到任务管理器列出的所有应用程序。
我认为我正在寻找的应用程序可能被描述为子窗口。
答案 0 :(得分:0)
如果您只想登记Window可见的那些进程,可以试试这个,
if (p.MainWindowHandle != IntPtr.Zero)
{
listProc.Add(p.MainWindowTitle);
}
答案 1 :(得分:0)
Process[] processes = Process.GetProcesses();
List<string > listProc=new List<string>() ;
foreach (Process p in processes)
{
if (p.MainWindowHandle.ToInt32()>0)
{
listProc.Add(p.MainWindowTitle);
}
}