ControlFocus

设置输入焦点到窗口的指定控件上.

ControlFocus Control , WinTitle, WinText, ExcludeTitle, ExcludeText

参数

Control

类型: 字符串, 整数对象

控件的 ClassNN, 文本或 HWND, 或具有 Hwnd 属性的对象. 有关详情, 请参阅 Control 参数.

WinTitle, WinText, ExcludeTitle, ExcludeText

类型: 字符串, 整数对象

如果这些都未设置或省略, 将使用上次找到的窗口. 否则, 为 WinTitle 指定窗口标题或其他条件, 来标识目标窗口, 和/或为 WinText 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示). 如果 DetectHiddenText 已经打开, 则检测隐藏文本元素. 标题或文本包含 ExcludeTitleExcludeText 的窗口将不被考虑.

错误处理

如果找不到窗口或控件, 则抛出 TargetError.

备注

要让设置生效, 控件所在的窗口一般不能处于最小化或隐藏状态.

为了提高可靠性, 每次使用此函数后都会自动执行延迟. 该延迟可以通过 SetControlDelay 来更改.

窗口标题和文本是区分大小写的. 除非 DetectHiddenWindows 被打开, 否则不会检测隐藏窗口.

当控件被聚焦以响应用户输入(例如按 Tab 键) 时, 对话管理器应用附加效果, 这些效果独立于具有焦点的控件. 这些效果不是由 ControlFocus 应用的, 因此以下限制适用:

WM_NEXTDLGCTL 消息可以用来聚焦控件并应用这些附加效果. 例如:

WinExist("A") ; 将最后找到的窗口设置为活动窗口
ControlGet, hWndControl, Hwnd,, Button1  ; 获取第一个按钮的 HWND
SendMessage, 0x0028, hWndControl, True  ; 0x0028 对应 WM_NEXTDLGCTL

SetControlDelay, ControlGetFocus, 控件函数

示例

设置焦点到 OK 按钮上.

ControlFocus "OK", "Some Window Title"  ; 设置焦点到 OK 按钮上
unixetc