使用GetForegroundWindow,得不到,难道这个函数得不到非模式对话框的句柄,谁知道用什么可能获得

解决方案 »

  1.   

    试试
    CWnd::GetDesktopWindow()->GetWindow(GW_CHILD);
    参考下面的代码:在线程中搜索错误框,并将其关闭
    VOID ErrorThread(LPVOID lparam)
    {
    CWnd * pWnd;
    CString text;
    for(;;)
    {
    pWnd=CWnd::GetDesktopWindow()->GetWindow(GW_CHILD);
    pWnd->GetWindowText(text);
    Sleep(100);
    if(text.Find("应用程序错误")>0)
    {
    Beep(1000,2000);
    pWnd->PostMessage(WM_COMMAND,IDOK);

    }
    }
    首先要启动线程:
    AfxBeginThread((AFX_THREADPROC)ErrorThread,0,1,0,0,0);