我正在开发一个涉及文本分析的 .NET 应用程序。
我想从当前聚焦窗口活动文本框中检索文本。最好是从 Windows 光标的位置
这应该独立于过程,这意味着如果用户在 Word 中写作,我想检索在光标位置“附近”键入的单词,也在 Chrome 或 IE url 等中。
有谁知道.NET 中有一个很好的解决方案?
一个好的起点是获得鼠标悬停的控制权,可以这样完成:
[DllImport("user32.dll")]
static extern IntPtr ChildWindowFromPoint(IntPtr hWndParent, Point Point);
[DllImport("user32.dll")]
static extern IntPtr WindowFromPoint(Point Point);
[DllImport("user32.dll")]
static extern bool ScreenToClient(IntPtr hWnd, ref Point lpPoint);
//...
Point p = Cursor.Position;
IntPtr phwnd = WindowFromPoint(Cursor.Position);
ScreenToClient(phwnd, ref p);
IntPtr hwnd = ChildWindowFromPoint(phwnd, p);
从那里您可以通过类似于此处回答的方法从控件中获取文本: