如何获取创建进程弹出的所有窗口句柄?运行一个进程后会弹出二个窗体,窗口标题是一样的(内容不一样),findwindow只可得到第一个句柄,如何快速得到第二个窗口句柄?我是这样实现的,但是不太好。反应慢,方法:
1,用createprocess 创建进程,并得到进程ID。
2,枚举所有窗口句柄,及对应的PID,和创建的PID对比,如果PID相等则窗体是我们创建的程序。
但是这样有时运行速度很慢,请问大侠们,谁有好的办法。最好提供代码。谢谢!

解决方案 »

  1.   

    通过窗口句柄能获取窗口的标题和所在进程的ID
    标题对比,进程ID和你的进程ID对比,符合条件的关闭
      

  2.   

    2楼,3楼,就是我用的办法
    在VISTA下使用正常,
    但在XP下反应慢,不知道是什么问题。
      

  3.   

    我在XP上枚举窗口句柄,怎么这么慢,
    VISTA上快,
      

  4.   

    你这点分,只给你给提供理论:用EnumWindows后比较宿主进程。其实你的方法就很好,只是在遍历的时候你没有做过滤所以效率低。比如你可以只遍历可见窗口(因不可见窗口非常多)。