Windows 10 上的全屏 Metro 应用程序未使用 EnumWindows 列出

par*_*vez 6 windows winapi callback win-universal-app windows-10

使用 EnumWindows API ( https://msdn.microsoft.com/en-us/library/windows/desktop/ms633497%28v=vs.85%29.aspx )时,不会列出全屏 Metro 应用程序窗口。这些窗口在恢复或最大化模式下会列出,但在全屏模式下会失败。请注意,所有 Metro 应用程序都没有全屏模式。我尝试的应用程序是名为 3D Chess Game 的游戏应用程序,并且 EnumWindows API 中给出的回调函数没有为 3D Chess Game 全屏窗口调用,而为屏幕上的所有其他顶级窗口调用。这种行为的原因可能是什么?是否有其他方法可以通过全屏 Metro 应用程序窗口进行枚举?

对此的任何帮助表示赞赏。提前致谢。

Sth*_*t01 0

我不知道为什么EnumWindows不枚举全屏 Metro (UWP) 应用程序,但如果您知道窗口标题,则可以使用FindWindow检索其句柄:

var hwnd = FindWindow(null, "Full screen window title");
Run Code Online (Sandbox Code Playgroud)

如果您不知道窗口的标题或者想要枚举所有窗口,无论其标题如何,则必须按照此答案中的说明调用EnumChildWindows