【问题标题】:Wait for message loop等待消息循环
【发布时间】:2011-06-09 12:16:56
【问题描述】:

我正在用 c# 编写一些带有 win32 调用的软件,通过标题搜索窗口。当窗口出现时,我的软件会向它发送各种窗口消息,以自动执行我不想自己手动执行的重复活动。我发现有时发送的 WM 消息似乎没有被应用程序处理。我目前的理论是我的软件在实际创建应用程序消息循环之前发现了窗口并开始发送窗口消息。

有没有办法等到消息循环运行?

【问题讨论】:

    标签: c# winapi message-queue


    【解决方案1】:

    Process.WaitForInputIdle() 可能是一种解决方案。

    导致 Process 组件等待 无限期地为相关 进程进入空闲状态。这 重载仅适用于进程 具有用户界面,因此, 一个消息循环。

    【讨论】:

    • WaitForInputIdle 在第一次调用时只等待一次。如果您随后使用它,它只会立即返回成功。我会试一试,但不确定它是否能胜任。
    【解决方案2】:

    窗口消息从不得到处理吗?你被 UIPI 屏蔽了吗?

    【讨论】:

    • 无阻塞,从未处理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2017-08-17
    • 2020-12-25
    • 1970-01-01
    • 2023-01-20
    • 2020-07-02
    相关资源
    最近更新 更多