在Windows应用程序中,我想检查(任何进程的)前景窗口是否有文本光标闪烁。
使用WinApi函数GetGUIThreadInfo似乎有一种标准方法,如下所示:
(它是C ++代码,但语言并不重要)
GUITHREADINFO threadInfo = {sizeof(GUITHREADINFO)} ;
GetGUIThreadInfo(NULL,&threadInfo) ;
bool caretState = threadInfo.flags & GUI_CARETBLINKING ; //true if the caret is blinking
这适用于大多数程序,但不幸的是,不适用于其Google threadInfo.flags
成员永远不会设置GUI_CARETBLINKING
标记的Google Chrome。
是否有其他方法可以检测适用于Google Chrome的文字插入符号?
例如,我知道屏幕阅读器可以遍历Chrome's accessibility tree,这会将窗口内容暴露给外部应用程序。
这个辅助功能树中的任何地方都有关于闪烁插入符号的信息吗?
修改
其中一条评论让我意识到,说“闪烁的插入符号”可以解释为我想要逐字地检测称为闪烁插入符号的图形元素。
那不是我的意图。我正在尝试做的是检测闪烁的插入符所暗示的内容,即文本输入字段是聚焦的。