C# 获取通过按alt+;显示的所有(但仅限于)windows进程;标签

C# 获取通过按alt+;显示的所有(但仅限于)windows进程;标签,c#,windows,C#,Windows,我想通过按alt+tab获得所有(但仅限于)windows进程 使用Process.GetProcesses()我可以获得所有进程和 [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool IsWindowVisible(IntPtr hWnd); 我可以过滤大部分不可见的进程,但仍有一些不可见的进程,如设置或Microsoft应用商店,我从未打开

我想通过按alt+tab获得所有(但仅限于)windows进程

使用
Process.GetProcesses()
我可以获得所有进程和

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsWindowVisible(IntPtr hWnd);

我可以过滤大部分不可见的进程,但仍有一些不可见的进程,如设置或Microsoft应用商店,我从未打开过。如何也筛选这些进程?

ALT+TAB不显示进程,而是显示窗口。获取可见窗口的列表。
var windowed=Process.getprocesss()。其中(p=>p.Id>4&&p.MainWindowHandle!=IntPtr.Zero)。ToArray()。一些人可以有一个窗口句柄,但没有一个可见的窗口。@Jimi
p.Id>4
的原因是什么?@đxěŕ跳过
系统空闲
系统
:这两个人不喜欢分享。我总是加上那个条件。@Jimi谢谢你的解释,有道理!