从当前文本区域获取文本

时间:2013-03-11 17:11:22

标签: c# .net winapi

我正在开发一个涉及文本分析的.NET应用程序。

我想从当前的焦点窗口活动文本框中检索文本。最好从Windows光标的位置

这应该独立于进程,这意味着如果用户正在使用Word编写,我想要检索键入的单词" near"光标的位置,也在Chrome或IE网址等。

有人知道在.NET中有一个很好的解决方案吗?

1 个答案:

答案 0 :(得分:3)

一个好的起点是获得鼠标结束的控制,可以这样做:

[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);

从那里你可以通过类似于这里回答的方法从控件中获取文本:

https://stackoverflow.com/a/7740920/1794305