windows8 metro app窗口查找

mac2022-06-30  30

EnumWindows枚举出来的窗口并不包含metro app,需要直接使用FindWindowsEx:

#include <windows.h> #include <locale.h> BOOL CALLBACK EnumWindowsProc( _In_ HWND hwnd, _In_ LPARAM lParam ) { TCHAR WindowsText[MAX_PATH]; GetWindowText(hwnd, WindowsText, MAX_PATH); _tprintf_s(WindowsText); _tprintf_s(TEXT("\n")); return TRUE; } VOID EnumWindowsWithMetro( __in WNDENUMPROC EnumFunc, __in LPARAM lParam ) { HWND ChildWindow = NULL; while (ChildWindow = (NULL, ChildWindow, TEXT("Windows.UI.Core.CoreWindow"), NULL)) { if (!EnumFunc(ChildWindow, lParam)) return; } } int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL, "zh-CN"); EnumWindowsWithMetro(EnumWindowsProc, 0); return 0; }

Windows.UI.Core.CoreWindow为metro app窗口类名。

运行效果图:

StarDock出品的软件ModernMix可以把metro app软件窗口化,估计是使用类似的原理。

Technorati 标记: windows 8, metro

转载于:https://www.cnblogs.com/nevergone/archive/2013/04/30/3052353.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)