2013-03-10 76 views
2

我正在做一个通用文本自动完成程序在C#中的应用程序。所以我需要在当前活动窗口中获取插入位置(可能是记事本,Word等)。我该怎么做才能得到插入符的X,Y坐标?我需要它在用户输入时在光标(插入符号)下显示建议。插入符号的位置/位置在任何应用程序中

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

我不知道如何去做所有这些。这一切都可能使用C#?或者我应该改变编程语言?

+0

我在这里看到不同的问题:1. [Get active application](http://stackoverflow.com/questions/2483537/is-it-possible-to-get-the-name-of-current-active-application )2. [获取游标坐标](http://stackoverflow.com/questions/1316681/getting-mouse-position-in-c-sharp)我希望这可以帮助你更接近你的目标。 – 2013-03-10 10:48:07

回答

0

语言选择在很大程度上与这个问题无关。文本输入本身很困难。

解决您的问题将会很困难,因为应用程序经常使用自定义或大量定制的控件来编辑文本。记事本使用标准的编辑控件,因此您可以使用EM_GETSEL消息检索字符中的脱字符位置,并使用EM_POSFROMCHAR将其转换为屏幕位置。标准Rich Edit控件存在类似的消息。但是,使用Microsoft Word时,您可能不得不使用COM调用它并找出插入位置。其他应用程序将有其他API,您将不得不研究,反向工程,支持和测试。这只是一个开始 - 我希望你会想要检索文本周围的文本并修改它,和/或显示一个UI来为用户提供选择。这将是一个主要的PITA,所以我会研究IME API以查看是否有适合的地方。应该有,因为东亚的输入模式本身就是一种自动完成的模式。 IME的优势在于它不依赖于目标控制。

相关问题