是否有任何方式(Win32API或其他)从任何类型的窗口获取文本?我可以得到活动窗口的HWND
,但调用发送WM_GETTEXT
消息并不总是给我的文本(MS Word是一个很好的例子)。
我试图做出一个通用的拼写检查器,从任何应用程序,用户按热键组合并获取更正到他的文本。
如果我想要整个文本,只选择文本,或者说光标所在的单词,它会不同吗?
我可以在c,C++或c#中使用库或Win32API或其他任何东西来接受答案。如果有解决方案,但只有其他一些编程语言(不可能只能在Delphi中完成,而不是在API中完成),我也可以管理它。从任何类型的文件中获取文本
1
A
回答
1
如果不引用特定于应用程序的API,您将无法做到这一点。不同的应用程序处理文本的方式不同
例如,在记事本中,文本只是Windows API可以检索的多行文本框中的字符串。
但是,Word会在内部处理文本并将显示器呈现为图像。所有Windows API知道的是由Word呈现的位图。 Windows API无法获取组成文本的ASCII/Unicode字符。为此,您需要使用Word的API。许多其他应用程序也会出现相同的问题。
4
我建议你看一看在UI Automation API,这就是你会找到最好的,因为它是专为这种用法,而忘记了原始低级的OLE”的Windows API :-)
我引述介绍:
UI自动化提供程序 访问大多数用户界面(UI),在桌面上 元素,使 辅助技术产品,如 屏幕读者提供有关UI信息 最终用户和 通过 标准输入以外的方式操纵UI。 UI Automation还允许自动测试脚本 与UI进行交互。
goot的开始是尝试UISpy tool。在编写任何代码之前,它将帮助检查您能够以编程方式查找的信息类型,这至少可以确保您不会浪费您的时间。
这不是那么容易找到,这里是一个链接:http://andrewtokeley.net/archive/2009/09/15/uispy-ndash-download-it-here.aspx
相关问题
- 1. 从调试版本中的类型获取文件的源代码文件名
- 2. 如何从文本框中的文本中获取文件名
- 3. 从文件中获取类
- 4. 从文本文件中的任意位置获取值
- 5. 无法从.winmd文件获取类型
- 6. 从Android中的文本文件读取类型double的数据
- 7. 从输入类型文件中获取文件名Angular2
- 8. vim:如何在插件脚本中获取文件类型
- 9. 从C++中的文本文件读取多个数据类型
- 10. 获取Cocoa中的文件类型
- 11. 获取Mono中的文件类型
- 12. 如何从JSP中的文件类型获取完整路径?
- 13. 从PDF文件中获取纯文本
- 14. 从文本文件中获取语法
- 15. 从文本文件中获取参数
- 16. 如何从python的文本文件中获取基本url?
- 17. 如何获取文件类型名称?
- 18. 获取文本文件或c#中的任何文件的完整路径
- 19. 从MySQL数据库中获取类型“文本”的价值
- 20. 如何从Base64中获取文件类型
- 21. 如何从WSDL文件中获取复杂类型?
- 22. 如何从文件中获取证书类型?
- 23. Javascript:如何从HTML文件输入中获取.tgz MIME类型?
- 24. 在.NET中获取文件类型
- 25. 在Mac OS中获取文件类型
- 26. 从输入类型=“文件”获取文件并传入数组
- 27. 如何从任何类型的提要中提取标题,图像和文本?
- 28. 如何从java中的任何网页获取标题文本
- 29. 从类“解析”中获取文本opennlp
- 30. 从EventLogEntry.Category中获取类别文本
谢谢,但UISpy尝试后,我无法得到的文本,所以我认为它不会帮助我。 – baruch 2011-06-01 08:27:10