生成适当的 WinEvent

服务器开发人员需要确保所有 UI 元素(包括基于窗口的 UI 元素、无窗口 UI 元素和具有高度自定义行为的 UI 元素)生成适当的 WinEvent。

USER 为基于 HWND 的标准 UI 元素提供默认 WinEvent 支持。 由于 USER 自动生成这些事件,因此服务器只需为自定义控件、无窗口元素或事件尚未由 USER 生成的控件生成事件。

若要发送事件,服务器会调用 NotifyWinEvent ,并为可以响应客户端请求的窗口传递事件常量、对象 ID 和 HWND 以获取更多信息。 需要触发的事件因 UI 元素的类型而异。 应为所有控件发送常规事件,以及只应为相应 UI 元素发送的特定事件。

常规事件

可以针对所有 UI 元素发送常规 WinEvent。 其中包括:

  • 创建 对象时EVENT_OBJECT_CREATE ()
  • ) 销毁对象时EVENT_OBJECT_DESTROY (
  • ) 显示对象时,EVENT_OBJECT_SHOW (
  • ) 隐藏对象时EVENT_OBJECT_HIDE (

特定事件

还可以为特定类型的 UI 元素发送特定的 WinEvent。 例如,对允许用户进行选择的控件(如列表框)使用 EVENT_OBJECT_SELECTION

有关特定类型 UI 元素需要哪些事件的详细信息,请参阅以下资源:

  • 附录 A:支持的用户界面元素参考。 本附录包含有关由 Microsoft Active Accessibility 公开的系统生成的 UI 元素的信息。 每个控件的文档都包含有关可由 UI 元素生成的事件的信息。
  • 事件常量。 本主题包含有关操作系统和服务器应用程序生成的事件的信息。
  • 可访问的事件观察程序 (AccEvent.exe) 。 此工具显示用户为特定 UI 元素发送的事件。 可以使用此工具了解 UI 元素可以预期的事件。 有关详细信息,请参阅 辅助事件观察程序