2013-03-10 56 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的優勢在於它不依賴於目標控制。

相關問題