c++ - FindWindowEx 找不到窗口句柄

标签 c++ winapi

我试图在对话框打开后立即找到它的句柄。

现在,一旦对话框打开,我就尝试在单独的线程中为该对话框调用 FindWindowEx,但它返回 NULL。

然后我在调用 FindWindowEx 之前睡了一会儿。 sleep 一段时间后它会起作用。

看起来 FindWindowEx 在创建对话框之前就被调用了, sleep 有助于创建对话框,因此有时它会起作用。

现在我已经在 sleep 中放置了一些随机值。而且它看起来不是一个好方法,因为它随时可能失败。

是否有任何完整的证明方法,以便我每次都可以通过 FindWindowEx 处理而无需让线程休眠。

最佳答案

如果您正在寻找的对话是您的对话——也就是说,您控制代码——那么您可以从您的对话向您的观看应用程序发送一条消息,说“哦,你好!”

如果对话框不是您的,并且您不想旋转,您可以 create a Windows hook在 WM_CREATE 消息上。

关于c++ - FindWindowEx 找不到窗口句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2194533/

相关文章:

c++ - windows凭据提示问题,CredUnPackAuthenticationBuffer错误50

c++ - 如何将 PDCurses 链接到 Windows 上的 C++ 应用程序?

c++ - 将所有工作汇总到一个循环中还是将其分成多个循环更好?

c++ - 挂接 Windows API 函数使应用程序崩溃

c++ - 正确检测UNC卷是否在线

c++ - Windows 7 中的背景色工具栏和菜单栏

c++ - 如何接收来自 Windows MessageBox 的反馈?

c++ - 为什么不弹出窗口?

c++ - C++ 的线程安全和引用传递

c++ - 是否可以使用 CMake 构建 Boost?