Windows API - Win32
一组适用于桌面和服务器应用程序的核心 Windows 应用程序编程接口 (API)。 以前称为 Win32 API。
135 个问题
win32有一个API:getGUIThreadInfo,可以获取插入点的边框信息:rcCaret。
https://learn.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-getguithreadinfo
但是我发现,当我在word中输入后,以及使用方向键移动插入点,getGUIThreadInfo并不能及时(约1秒)的获取到正确的信息。
还有其它方法可以获取应用中插入点的位置信息吗?
期待您的帮助解答
你好
欢迎来到Q&A中文论坛。
getGUIThreadInfo并不能及时(约1秒)的获取到正确的信息。
请问你是如何调用getGUIThreadInfo以获得实时插入点坐标的?如果是通过频繁的轮询调用, 我建议你可以尝试使用钩子比如WH_MOUSE_LL
和WH_KEYBOARD_LL
, 用来监听即将发布到线程输入队列中的鼠标输入事件和键盘输入事件。这样仅在用户输入时获取插入点坐标。
还有其它方法可以获取应用中插入点的位置信息吗?
你可以尝试使用GetCaretPos
获取插入点的客户端坐标,然后通过ClientToScreen
将指定点的工作区坐标转换为屏幕坐标。
你也可以使用UI自动化获得应用中插入点的位置信息。实现IUIAutomationTextPattern接口,提供对包含文本的控件的访问。
Jeanine
Thank you