如何识别与 Skype window 不同的 Microsoft Edge window?

How to recognize a Microsoft Edge window distinct from a Skype window?

我得到 windows 和 Win32.EnumWindows 的列表,然后过滤它们以保留我想要的。我想保留正常、可见的 Skype window 并跳过隐藏的 Microsoft Edge window。 (我使用 Chrome,并且在我的 Alt-TAB 输出或屏幕上看不到任何可访问的 Edge 实例。)

我已经过滤掉了 class Windows.UI.Core.CoreWindow 中的一些边缘 windows,但列表中仍然有一个边缘 window。也许它是主要的或父级 window 之类的?也许我打开的任务管理器 window 或设置 windows 是 Edge understand?

我转储了 Skype 和 Edge 的属性 windows,它们对于我查看的项目是相同的。 (我知道设置了 WS_VISIBLE 并不意味着我可以看到 window。)以下是两个 windows.

相同的项目
Skype window: (Identical to the output for the Edge window that I can't see.)
  Is visible.
  Has no owner.
  Has no parent.
  Is not APPWIN.
  Is not a toolwindow.
  Is not a cloaked store window.
  Class is ApplicationFrameWindow

谁能告诉我如何识别 Edge window(除了在代码中使用其名称作为特例)与 Skype window 的区别?或者可以给我指出一篇我还没有看过的网络文章? (我看了十几个,都没有成功。)谢谢。

谢谢大家的帮助。我最终使用了 window 标题,因为我发现我的列表中有几个 windows 没有出现在正常的 Alt-TAB 显示中。始终需要特殊情况(在网络示例中)将它们从列表中删除以帮助匹配正常的 Alt-TAB 显示。一旦我接受了特殊情况的需要,那么使用标题是这两个最简单的方法 windows.

我还了解到 Microsoft Edge(可能还有其他应用程序)start-up 一些后台进程和 windows 即使您没有使用它们。网上有人说你可以在设置中禁用这些后台进程,所以我这样做是为了在我的 Alt-TAB(或接近 Alt-TAB)列表中删除一些不需要的 windows。

我目前正在研究如何发现具有 IS_VISIBLE windows(您看不到,但具有上述所有属性)的 windows(例如 Edge 和 Settings)在原始问题的前面)附加到未显示在任务管理器的应用程序列表中的后台进程。

很奇怪。 OS 显然知道如何发现那些 windows 并将它们排除在任务管理器应用程序列表和 Alt-TAB 显示之外。我希望我知道该怎么做。正如 Rita 之前所说,也许答案在于流程(但我没有在我的网络研究中看到该方法的任何示例)。即使是陈峰著名的走祖先的方法也无法得出与 Alt-TAB 显示匹配的正确答案。