我想将所有正在运行的进程列入自制任务栏控件..
虽然我可以让所有进程都很好但是有几个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);
}
}
}
还有其他方法可以列出正在运行的进程吗?
或是否有使用过的方法的解决方法..
答案 0 :(得分:0)
explorer.exe 总是只运行一次。如果您想获得所有已打开的资源管理器窗口,则必须使用 WinAPI 。该主题应该可以帮助您:How find all windows?