[解决办法] 函数原型: HWND FindWindow ( LPCSTR lpClassName, LPCSTR lpWindowName ); 编辑本段参数表: lpClassName 指向一个以null结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子。如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过GlobalAddAtom函数创建好的全局原子。这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。 如果该参数为null时,将会寻找任何与lpWindowName参数匹配的窗口。 lpWindowName 指向一个以null结尾的、用来指定窗口名(即窗口标题)的字符串。如果此参数为NULL,则匹配所有窗口名。 编辑本段返回值: 如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。 如果函数执行失败,则返回值为 NULL 。可以通过调用GetLastError函数获得更加详细的错误信息。 编辑本段如何在C#中使用 导入库:user32.lib 头文件:winuser.h ***.Net 中运用 命名空间 using System.Runtime.InteropServices; 导入库 [DllImport("user32.dll")] 函数原型 public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 参数说明 lpClassName String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类 lpWindowName String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收 任何窗口标题 返回值 :句柄 编辑本段如何在C++中使用 头文件:afxwin.h 例子: // activate an application with a window with a specific class name BOOL CMyApp::FirstInstance() { CWnd *pWndPrev, *pWndChild; // Determine if a window with the class name exists... pWndPrev = CWnd::FindWindow(_T("MyNewClass"), NULL); if(NULL != pWndPrev) { // If so, does it have any popups? pWndChild = pWndPrev->GetLastActivePopup(); // If iconic, restore the main window if(pWndPrev->IsIconic()) pWndPrev->ShowWindow(SW_RESTORE); // Bring the main window or its popup to the foreground pWndChild->SetForegroundWindow(); // and you are done activating the other application returnFALSE; } returnTRUE; } [解决办法] 要用 EnumChildWindows BOOL EnumChildWindows( HWND hWndParent, WNDENUMPROC lpEnumFunc, LPARAM lParam );