C# 显示正在运行的应用程序(alt选项卡程序列表)

C# 显示正在运行的应用程序(alt选项卡程序列表),c#,process,alt-tab,processlist,C#,Process,Alt Tab,Processlist,在此处找到解决方案: 我正在尝试查看正在运行的应用程序列表,我在几个论坛上发现了此解决方案: Process[] processes = Process.GetProcesses(); foreach (var proc in processes) { if (!string.IsNullOrEmpty(proc.MainWindowTitle)) Console.WriteLine(proc.MainWindowTitle); } 除了这不是给我相同的列表,当你按

在此处找到解决方案:


我正在尝试查看正在运行的应用程序列表,我在几个论坛上发现了此解决方案:

Process[] processes = Process.GetProcesses();
foreach (var proc in processes)
{
     if (!string.IsNullOrEmpty(proc.MainWindowTitle))
        Console.WriteLine(proc.MainWindowTitle);
}
除了这不是给我相同的列表,当你按下alt键。例如:firefox、explorer和iexplore都返回空/空的MainWindowTitle。是否有其他方法访问此列表?也许通过windowsAPI

我正在使用Windows7 32位


感谢您的高级支持。

Windows上没有隐藏的进程。只有您没有(安全)权限查看的进程

请查看以下内容:


Windows上没有隐藏的进程。只有您没有(安全)权限查看的进程

请查看以下内容:

试试这个(取自),但我不确定它是否能解决您的问题:

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 { }
}
试试这个(取自),但我不确定它是否能解决您的问题:

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 { }
}

这可能有助于您了解可能的副本,也可以查看引用Raymond Chen的博客条目的副本,其中提供了详细信息。它可能会帮助您查看的可能副本,其中引用了Raymond Chen的博客条目,提供了详细信息。我可以查看所有进程,但无法检索mainwindowtitle。我可以查看所有进程,但无法检索mainwindowtitle。谢谢,但这并不能解决我的问题。我看到了所有的进程,但是getapplications函数只给了我一个正在运行的程序(它自己的进程)。谢谢,但它并不能解决我的问题。我看到了所有的进程,但是getapplications函数只给我一个正在运行的程序(它自己的进程)。