获取explorer.exe进程的所有实例?

时间:2014-11-16 11:34:35

标签: c# wpf process

我想将所有正在运行的进程列入自制任务栏控件..

虽然我可以让所有进程都很好但是有几个explorer.exe实例不会列出。(香港专业教育学院打开了几个文件夹,它应该列出所有,但它只显示一个。

以下是我用于获取所有正在运行的进程的代码

private void LoadApps()
{

    Process[] process = Process.GetProcesses();
    IntPtr child = IntPtr.Zero;
    panel.Children.Clear();

    foreach (Process p in process)
    {
        if(p.MainWindowHandle != IntPtr.Zero && p.MainWindowTitle.Length > 0)
        {
            System.Drawing.Icon ico = System.Drawing.Icon.ExtractAssociatedIcon(module.GetExecutablePath(p));
            Image btn = new Image();
            btn.Source = ico.ToImageSource();
            btn.Margin = new Thickness(4, 4, 4, 4);
            btn.Height = panel.Height;
            btn.Width = 32;
            btn.Tag = p.MainWindowHandle;
            panel.Children.Add(btn);
        }
    }
}

还有其他方法可以列出正在运行的进程吗?

或是否有使用过的方法的解决方法..

1 个答案:

答案 0 :(得分:0)

explorer.exe 总是只运行一次。如果您想获得所有已打开的资源管理器窗口,则必须使用 WinAPI 。该主题应该可以帮助您:How find all windows?