HWND hwnd;
while ((hwnd = ::FindWindow("IEFrame",NULL)) !=NULL )
...{
// ::SendMessage(hwnd,WM_CLOSE,0,0);
::PostMessage(NULL,WM_CLOSE,0,0);
}
用到3個api ,第一是 findwindow
HWND FindWindow
LPCTSTR lpClassName,
LPCTSTR lpWindowName
);
第一個參數就是 CreateWindow 時的參數, 比如記事本的ClassName 是 notepad, IE的classname 是
IEFrame, 這個參數可以用spy++來查,
查找子窗體用 FindWindowEx
HWND FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow
);
第二部分關閉窗口,用的是SendMessage或PostMessage ,
兩者區別是SendMessage 會等待
WM_XXX 執行完畢,而postmessage 只是把WM_XXX消息放到hwnd的消息循環中
實際用的時候,用WM_CLOSE消息時,很多程序都會提示保存, 另外發現spy++是個好東西