光标位置在任何应用程序中的方法/位置

4
我正在使用C#编写一个通用文本自动补全应用程序。因此,我需要获取当前活动窗口(可能是记事本、Ms Word等)中插入符的位置。我该怎么做才能获取插入符的X、Y坐标?我需要在用户输入时在光标下方显示建议。
我的程序在后台运行。它应该检测当前活动窗口中插入符的存在,并获取插入符的实时位置。每当用户输入文本时,位置值都应更新。
我不知道如何完成所有这些。使用C#是否可以完成所有这些操作?还是我应该更改编程语言?

我看到这里有不同的问题:1. 获取活动应用程序 2. 获取光标坐标 我希望这可以帮助您更接近您的目标。 - Alina B.
1个回答

1
语言选择在这个问题中并不重要。文本输入本身就很困难。
解决你的问题将会很困难,因为应用程序通常使用自定义或定制控件来编辑文本。记事本使用标准的Edit控件,因此您可以使用EM_GETSEL消息来检索字符中的插入符位置,并使用EM_POSFROMCHAR将其转换为屏幕位置。标准Rich Edit控件也有类似的消息。然而,对于Microsoft Word,您可能需要使用COM调用它并找出插入符位置。其他应用程序将具有其他API,您需要进行研究、反向工程、支持和测试。而这只是开始——我想您将希望检索插入符周围的文本并修改它,和/或显示一个UI以提供用户的选择。这将是一个主要的痛点,所以我建议您查看IME API,看看是否有适合您的内容。应该会有,因为东亚输入模式本身就是一种自动补全器。IME的优点是它不依赖于目标控件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接