我试了一下,用以下方式过滤,可以得到比较精确的结果:<br><br>BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)<br>{<br> if(IsWindowVisible(hwnd)==false)<br> return true;<br> if(GetWindowLong(hwnd,GWL_HWNDPARENT))<br> return true;<br><br> char TitleBuf[512];<br> char Buf[1024];<br> GetWindowText(hwnd,TitleBuf,510);<br> sprintf(Buf,"%08x %s",(unsigned)hwnd,TitleBuf);<br> Form1->LW->Items->Add(Buf);<br> return true;<br>}<br>调用是:<br> EnumWindows((WNDENUMPROC)EnumWindowsProc,0);<br><br>结果中,有3个窗口是多余的,其中两个是输入法的,没有标题,<br>可以用标题过滤,而另外一个多的是对应整个屏幕的,是<br>Program Manager的窗口,比较难过滤.不知是否有更好的方法.