使用EnumWindows遍历桌面上的每一个窗口.
BOOL EnumWindows(
WNDENUMPROC lpEnumFunc, // pointer to callback function
LPARAM lParam // application-defined value
);
他需要一个回调函数,这个函数用来处理EnumWindows找的每一个窗口句柄.
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
);
找到窗口后想把他关了,注意CloseWindow(hWnd)并不能做到!!!!使用PostMessage,或SendMessage 发送WM_CLOSE消息能做到!!
char str[256];
::SendMessage(hwnd, WM_GETTEXT, 255, (long)str);
if((strcmp(str, "MyWindow") == 0))
::PostMessage(hWnd, WM_CLOSE, 0, 0);
其他关于EnumWindows的文章如下:
http://www.vckbase.com/document/finddoc.asp?keyword=EnumWindow
http://tag.csdn.net/tag/enumwindows/
http://www.codeproject.com/tools/another_enum_viewer.asp