【问题标题】:c++ win32 text selection detection and fetching and modifying in another applicationc++ win32文本选择检测和在另一个应用程序中获取和修改
【发布时间】:2012-02-20 20:59:03
【问题描述】:

我见过一个用于帮助盲人的应用程序,它被称为 JAWS(它充当屏幕阅读器),它检测字符串并在许多应用程序中读取它,例如 MS Office 应用程序、记事本、Internet Explorer ...... 。ETC。是否可以在另一个应用程序中检测文本选择?怎么样?我认为使用了可访问性,但我不知道如何使用它!我可以用热键替换选择检测。 _ 我试图找到如下解决方案

  1. 获取顶部和激活的窗口或从鼠标位置。
  2. 从鼠标位置获取它的子节点。
  3. 获取或设置选定的文本。

在 ms word 中,我使用 spy++ 来检测包含我得到“Microsoft Word 文档”文本的控件

【问题讨论】:

    标签: c++ winapi accessibility jaws-screen-reader


    【解决方案1】:

    没有简单的方法可以做到这一点,因为没有单一一致的方法可以从任意应用程序中获取文本(选择的或其他的)。 JAWS 等应用程序通常使用一整套技术,具体取决于应用程序或控件:

    • 对于 EDIT 和 RichEdit 控件,各种 EM_ messages 工作。

    • 对于 Internet Explorer,可以使用 HTML DOM

    • 对于 Word,Text Object Model 接口可用于访问文本和格式。其他应用可能支持类似的特定应用模型。

    • 一些(但不是全部)应用程序和应用程序框架支持可访问性 API,例如 UIAutomationIAccessible2,它允许访问有关应用程序中控件的信息,以及有关文本和文本选择的信息。

    • 1234563绘制在哪里,这样他们就可以查找应该在屏幕上任何位置的文本。

    由于这些都不能单独涵盖所有内容,因此屏幕阅读器通常会根据当前应用的需要尝试所有这些:您几乎可以将屏幕阅读器视为一个特殊情况代码库,用于从各种应用中提取信息。

    【讨论】:

    • 感谢您的回答,但如果您知道文本对象模型的简单指南并将其与 MS Word 一起使用 -> 请参考。
    猜你喜欢
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    相关资源
    最近更新 更多