C# 插入符号在任何应用程序中的位置/位置

C# 插入符号在任何应用程序中的位置/位置,c#,.net,windows,mouse,C#,.net,Windows,Mouse,我正在用C#编写一个通用文本自动补全程序。因此,我需要在当前活动窗口中获取插入符号的位置(可能是记事本、Ms Word等)。我应该怎么做才能得到插入符号的X,Y坐标?我需要它在用户键入时在光标(插入符号)下显示建议 我的程序正在后台运行。它应该在当前活动的任何窗口中检测插入符号的存在,并获取插入符号的实时位置。每当用户输入文本时,位置值都应更新 我不知道怎么做这些。使用C#可以做到这一切吗?还是应该更改编程语言?语言选择与此问题基本无关。文本输入本身就很困难 解决您的问题将很困难,因为应用程序通

我正在用C#编写一个通用文本自动补全程序。因此,我需要在当前活动窗口中获取插入符号的位置(可能是记事本、Ms Word等)。我应该怎么做才能得到插入符号的X,Y坐标?我需要它在用户键入时在光标(插入符号)下显示建议

我的程序正在后台运行。它应该在当前活动的任何窗口中检测插入符号的存在,并获取插入符号的实时位置。每当用户输入文本时,位置值都应更新


我不知道怎么做这些。使用C#可以做到这一切吗?还是应该更改编程语言?

语言选择与此问题基本无关。文本输入本身就很困难


解决您的问题将很困难,因为应用程序通常使用自定义或高度自定义的控件来编辑文本。记事本使用标准编辑控件,因此您可以使用EM_GETSEL消息检索字符中的插入符号位置,并使用EM_POSFROMCHAR将其转换为屏幕位置。标准富编辑控件也存在类似的消息。但是,使用MicrosoftWord时,您可能必须使用COM调用它并找出插入符号的位置。其他应用程序将有其他API,您必须对其进行研究、逆向工程、支持和测试。这仅仅是一个开始——我希望您希望检索插入符号周围的文本并对其进行修改,和/或显示一个UI,为用户提供选择。这将是一个主要的PITA,所以我会研究IMEAPI,看看是否有合适的东西。应该有,因为东亚输入模式本身就是一种自动补全器。IME的优点是它不依赖于目标控件

我在这里看到了不同的问题:1。2.我希望这能帮助你更接近你的目标。