Search code examples
c#windowswindows-10pinvoke

EnumWindows function in Win10 enumerates only desktop apps


The documentation on EnumWindows underscores:

Note For Windows 8 and later, EnumWindows enumerates only top-level windows of desktop apps.

What is the difference between "desktop apps" and "non desktop apps"?

Is this related to metro apps?

I ask because EnumWindows is behaving somewhat different in Win10 compared with Win7.


Solution

  • You are correct. EnumWindows will only find windows that belong to programs that aren't Modern (Metro) apps. It will get windows that belong to traditional (desktop) programs. FindWindowEx, according to several sources, does work all kinds of windows, including those from Modern apps.