如何判断Google Chrome是否有一个专注于Windows的文本输入框?

时间:2018-04-10 12:27:58

标签: windows google-chrome winapi focus caret

在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,这会将窗口内容暴露给外部应用程序。
这个辅助功能树中的任何地方都有关于闪烁插入符号的信息吗?

修改
其中一条评论让我意识到,说“闪烁的插入符号”可以解释为我想要逐字地检测称为闪烁插入符号的图形元素。
那不是我的意图。我正在尝试做的是检测闪烁的插入符所暗示的内容,即文本输入字段是聚焦的。

0 个答案:

没有答案