等待另一个应用程序窗口

时间:2011-03-03 23:37:18

标签: c++ winapi handle

在显示另一个应用程序的窗口时,在我的应用程序中等待的最佳方法(优化和使用系统资源)是什么?

例如:

  1. 我的申请开始。
  2. 等待,例如, 将启动记事本,以便我可以处理其窗口。
  3. 使用句柄即时通讯 然后关闭我的应用程序。
  4. 如何完成第2项?我只知道一种可能的方法:使用FindWindow检查句柄是否存在于循环中。但我希望有一个更聪明的解决方案。

2 个答案:

答案 0 :(得分:2)

如果您启动了该过程(使用CreateProcess),请使用WaitForInputIdle,然后启动FindWindow循环。在循环中添加Sleep(20)或其他内容将确保您的资源使用量最小。

答案 1 :(得分:2)

我不这么认为......我认为最好的方法是挂钩过程...... USING HOOKS

...请参阅:WH_CBT,您必须关注此事件:HCBT_CREATEWND