一个程序弹出对话框,使用spy++ 查看对话框标题为空 ,控件ID为0 ,只有一个大众化的类名#32770 (对话框),请问这样的要如何判断

解决方案 »

  1.   

    你可以看看 GetForegroundWindow函数,然后,既然你知道那个程序的名称,就可以得到进程id ,进而就可以判断一个对话框是否
    属于该进程的
      

  2.   

    自己的程序可以判断 WM_NCACTIVATE,别的程序不太容易。
      

  3.   

    用FindWindowEx实际上是比较好的办法,找到子窗口的特性匹配就可以了
    还有一种比较麻烦的方法 
    用EnumWindowsProc枚举一遍窗口,在类名为#32770的窗口里调用以下API
    GetWindowThreadProcessId
    获取进程ID,然后创建进程快如照 匹配ID和进程名 这是比较曲折的方法
      

  4.   

    Popup风格的对话框的话,可以使用GetWindow(HWND_PARENT, GW_ENABLEDPOPUP);
    还有个GetLastActivePopup()也可以试试