3

是否可以获得任何窗口的选定文本,包括非 UI 自动化元素?我希望能够获取任何进程的当前焦点元素的当前内容的选定文本。

我已经看到了使用 UI 自动化来执行此操作的各种示例,但这仅适用于某些似乎最近在 .NET 中开发的应用程序。我需要能够获取任何窗口的文本。

我记得不久前,一个表现得像字典的应用程序,你可以在 Windows 中的任何地方用鼠标悬停在一些文本上,它会显示一个带有定义的工具提示。这可以在 C# 和 .NET 中实现吗?

我一直在使用 WinSpy 检查似乎不适用于 UIA 的窗口内容,并且 ApplicationId 显示为空或“”。我猜 UIA 不支持这个特定的元素。当我使用 Notepad++ 进行测试时,我还注意到它使用了 Scintilla,它似乎也无法与 UIA 一起使用。

也许如果有人可以用其他方法展示一种可靠的方法,我可以对我的应用程序使用混合方法。使用 UIA 框架,如果这没有产生结果,那么它会退回到其他方法。

4

1 回答 1

1

实现此目的的一种简单方法是将CTRL + C密钥代码发送到选定的窗口,然后您可以在剪贴板中找到选定的文本。这很容易实现。请参阅此处以将密钥发送到其他进程,并请参阅此处以读取剪贴板。缺点是您显然会丢失剪贴板内容。如果您寻找更可靠的解决方案,请检查此问题

于 2012-01-28T19:56:09.110 回答