显示正在运行的应用程序(alt-tab程序列表)
本文关键字:alt-tab 程序 列表 应用程序 运行 显示 | 更新日期: 2023-09-27 18:16:10
找到解决方案:http://blogs.msdn.com/b/oldnewthing/archive/2007/10/08/5351207.aspx
我想去一个正在运行的应用程序列表,我在几个论坛上找到了这个解决方案:
Process[] processes = Process.GetProcesses();
foreach (var proc in processes)
{
if (!string.IsNullOrEmpty(proc.MainWindowTitle))
Console.WriteLine(proc.MainWindowTitle);
}
除了这不是给我相同的列表当你按下alt-tab。例如:firefox, explorer和iexplore都返回一个空/null MainWindowTitle。有别的方法访问这个列表吗?也许通过一个windowsAPI?
我正在使用Windows 7 32位
提前谢谢。
Windows上没有隐藏进程。只有你没有(安全)权限的进程才能看到。
请看下面的内容:
使用c#检索完整的进程列表
试试这个(从这里取的),但我不确定它能解决你的问题:
static void Main(string[] args)
{
GetProcesses();
GetApplications();
Console.Read();
}
public static void GetProcesses()
{
StringBuilder sb = new StringBuilder();
ManagementClass MgmtClass = new ManagementClass("Win32_Process");
foreach (ManagementObject mo in MgmtClass.GetInstances())
Console.WriteLine("Name:" + mo["Name"] + "ID:" + mo["ProcessId"]);
Console.WriteLine();
}
public static void GetApplications()
{
StringBuilder sb = new StringBuilder();
foreach (Process p in Process.GetProcesses("."))
try
{
if (p.MainWindowTitle.Length > 0)
{
Console.WriteLine("Window Title:" + p.MainWindowTitle.ToString());
Console.WriteLine("Process Name:" + p.ProcessName.ToString());
Console.WriteLine("Window Handle:" + p.MainWindowHandle.ToString());
Console.WriteLine("Memory Allocation:" + p.PrivateMemorySize64.ToString());
}
}
catch { }
}