2

我想在另一个程序中获取插入符号所在的文本框的句柄。我所能找到的只是如何在带有“EnumChildWindows”的窗口中获取控件列表,然后搜索“编辑”控件..(它不适用于所有具有文本框的程序)。我不知道如何找到插入符号所在且用户正在写入的那个。我真的被它困住了.. :(thanx alot,Shiran。

4

1 回答 1

1

你需要跳过几个 pinvoke 箍。从 GetForegroundWindow() 开始获取活动顶层窗口的句柄。然后 GetThreadWindowProcessId() 以获取拥有该窗口的线程的 ID。最后是GetGUIThreadInfo(),它返回一堆关于线程拥有的窗口的信息。GUITHREADINFO.hwndCaret 成员为您提供了拥有插入符号的窗口的句柄。顺便说一句,它不一定是文本框。

访问 pinvoke.net 获取您需要的声明。

于 2010-11-28T17:29:13.077 回答