问题描述
如何检测文本/可写字段是否被聚焦?
通过文本/可写字段,我的意思是例如记事本;这个 SO-text 字段; Chrome 的地址栏等。基本上是您应该写入的任何内容。
解决方法
听起来像您想要ControlGetFocus,它让您可以控制具有输入焦点的目标窗口。什么样的窗口会真正产生影响,IE 相当可行,Notepad++ 也可行,Chrome 需要特殊代码,例如:https://autohotkey.com/board/topic/103178-how-to-get-the-current-url-in-google-chrome/#entry637687。
获得对活动窗口的控制效果很好的示例:
!z::
activeWindow := WinExist("A")
ControlGetFocus,focusedControl,ahk_id %activeWindow%
if(ErrorLevel) {
MsgBox,Couldn't get focusedControl
} else {
ControlGetText,focusText,%focusedControl%
if(ErrorLevel) {
ControlGetText,ahk_id %activeWindow%
Msgbox,Focused window text: %focusText%
} else {
Msgbox,Focused control text: %focusText%
}
}
return
因此,您可能想要找出您感兴趣的任何领域的标识符,并在您想知道时检查它是否具有焦点,或者可能定期使用 SetTimer。