- 版本 v1.1.15.01
- 指南和概述
- 常见问题(FAQ)
- 按字母排序的命令和函数索引
- AutoHotkey 脚本展示
- 变更和新功能
- 基本用法和语法
- 迁移到 AutoHotkey 1.1(AutoHotkey_L)
- 环境管理
- 本机代码互操作
- 文件、目录和磁盘管理
- Drive
- DriveGet
- DriveSpaceFree
- FileAppend
- FileCopy
- FileCopyDir
- FileCreateDir
- FileCreateShortcut
- FileDelete
- FileEncoding [AHK_L 42+]
- FileGetAttrib
- FileGetShortcut
- FileGetSize
- FileGetTime
- FileGetVersion
- FileInstall
- FileMove
- FileMoveDir
- FileOpen [AHK_L 42+]
- FileReadLine
- FileRead
- FileRecycle
- FileRecycleEmpty
- FileRemoveDir
- FileSelectFile
- FileSelectFolder
- FileSetAttrib
- FileSetTime
- IfExist / IfNotExist
- IniDelete
- IniRead
- IniWrite
- Loop(文件和文件夹)
- Loop(读取文件内容)
- SetWorkingDir
- SplitPath
- 流程控制
- 内置函数
- GUI、MsgBox、InputBox 及其他对话框
- 鼠标和键盘
- 鼠标和键盘
- #InstallKeybdHook
- #InstallMouseHook
- #KeyHistory
- BlockInput
- Click [v1.0.43+]
- ControlClick
- ControlSend / ControlSendRaw
- CoordMode
- GetKeyState
- KeyHistory
- KeyWait
- Input
- MouseClick
- MouseClickDrag
- MouseGetPos
- MouseMove
- Send / SendRaw / SendInput / SendPlay / SendEvent: 发送按键和点击
- SendLevel [v1.1.06+]
- SendMode [v1.0.43+]
- SetDefaultMouseSpeed
- SetKeyDelay
- SetMouseDelay
- SetCapsLockState/SetNumLockState/SetScrollLockState
- SetStoreCapslockMode
- 数学相关
- 屏幕管理
- 杂项命令
- 进程管理
- 注册表管理
- 声音命令
- 字符串管理
- 窗口管理
- 控件
- 窗口组
- #WinActivateForce
- DetectHiddenText
- DetectHiddenWindows
- SetTitleMatchMode
- SetWinDelay
- StatusBarGetText
- StatusBarWait
- WinActivate
- WinActivateBottom
- WinClose
- WinGet
- WinGetActiveStats
- WinGetActiveTitle
- WinGetClass
- WinGetPos
- WinGetText
- WinGetTitle
- WinHide
- WinKill
- WinMaximize
- WinMinimize
- WinMinimizeAll / WinMinimizeAllUndo
- WinMove
- WinRestore
- WinSet
- WinSetTitle
- WinShow
- WinWait
- WinWaitActive / WinWaitNotActive
- WinWaitClose
- #指令
ControlClick
发送鼠标按钮或鼠标滚轮事件到控件。
ControlClick [, Control-or-Pos, WinTitle, WinText, WhichButton, ClickCount, Options, ExcludeTitle, ExcludeText]
参数
- Control-or-Pos
如果此参数为空, 则点击目标窗口的顶层控件 (或如果窗口没有控件则点击窗口自身). 否则, 使用下列两种模式的其中一个.
模式 1 (位置): 指定相对于目标窗口左上角的 X 和 Y 坐标. X 坐标必须在 Y 坐标前面, 且它们之间需要含有至少一个空格或 tab. 例如:
X55 Y33
。如果在指定的坐标存在控件, 则会发送点击事件到这个坐标处. 如果没有控件, 则发送事件到目标窗口自身 (根据窗口的性质, 这可能不会产生效果). 注意:在此模式中,会忽略 Options 参数中的 X 和 Y 字母选项。模式 2 (ClassNN 或文本): 可以指定 ClassNN (控件的类名和实例编号) 或控件的名称/文本, 它们都可以通过 Window Spy 获取. 使用名称/文本时, 匹配行为由 SetTitleMatchMode 决定.
默认情况下, 模式 2 优先于模式 1. 例如, 在一种不太可能的情况中某个控件的文本或 ClassNN 格式为 "Xnnn Ynnn", 那么此时会使用模式 2. 要覆盖此行为而无条件使用模式 1,请在 Options 中加上单词 Pos,例如:
ControlClick, x255 y152, WinTitle,,,, Pos
要操作控件的 HWND(窗口句柄),请将此参数留空同时在 WinTitle 参数中指定
ahk_id %ControlHwnd%
(即使在 DetectHiddenWindows 设置关闭时,这样也可以操作隐藏控件)。获取控件的 HWND 的一般方法是使用 ControlGet Hwnd, MouseGetPos 或 DllCall.- WinTitle
窗口标题或识别目标窗口的其他条件。请参阅 WinTitle。
- WinText
如果使用此参数, 那么它必须是目标窗口中单个文本元素的子字符串 (和内置的 Window Spy 工具显示的一样). 当 DetectHiddenText 的设置为 ON 时, 那么会检测到隐藏文本元素.
- WhichButton
要点击的按钮: LEFT, RIGHT, MIDDLE (或这些单词的首个字母). 如果省略或为空, 则使用 LEFT 按钮.
还支持 X1(XButton1:第四个鼠标按钮)和 X2(XButton2:第五个鼠标按钮)。
还支持 WheelUp(或 WU)和 WheelDown(或 WD)。此时 ClickCount 为需要转动的滚轮格数.
Windows Vista 或更高版本 [v1.0.48+]: 还支持 WheelLeft (或 WL) 和 WheelRight (或 WR) (它们在较旧的操作系统中没有效果). 此时 ClickCount 为需要转动的滚轮格数.
- ClickCount
要点击鼠标的次数, 可以为 表达式. 如果省略或为空, 则点击 1 次.
- 选项
零个或多个下列选项字母组成的系列. 例如:
d x50 y25
。NA [v1.0.45+]: 也许可以提高可靠性. 请参阅后面的 可靠性.
D: 按住鼠标按钮不放 (即生成按下事件). 如果 D 和 U 选项都没有包含, 则会发送完整的点击事件 (按下事件和弹起事件).
U: 释放鼠标按钮 (即生成弹起事件). 此选项不能和 D 选项同时使用.
Pos: 在 Options 的任意位置指定单词 Pos, 这样会无条件使用在上面 Control-or-Pos 参数中描述的 X/Y 位置模式.
Xn: 指定 n 为要点击的相对于控件左上角的 X 坐标. 如果未指定, 则在控件的水平中心点击.
Yn:指定 n 为要点击的相对于控件左上角的 Y 坐标。如果未指定, 则在控件的垂直中心点击.
在 X 和 Y 选项中使用十进制数而不是十六进制数.
- ExcludeTitle
标题中含有此参数值的窗口将被排除.
- ExcludeText
文本中含有此参数值的窗口将被排除.
ErrorLevel
[v1.1.04+] 此命令失败时会抛出异常. 想了解更多信息, 请参阅 运行时错误.
如果遇到问题则 ErrorLevel 被置为 1, 否则为 0.
可靠性
要提高可靠性, 尤其是在 ControlClick 期间用户同时在使用鼠标, 请尝试下面的一种或两种方法也许会有所帮助:
1) 请在 ControlClick 前面加上 SetControlDelay -1
。这样可以避免在点击时按住鼠标, 减少对用户使用鼠标的干扰.
2) 在第六个参数 (Options) 中指定字符串 NA, 如下所示:
SetControlDelay -1 ControlClick, Toolbar321, WinTitle,,,, NA
NA
可以避免激活目标窗口,同时避免混淆它和脚本的输入,这样可以防止鼠标实际移动产生的冲突(但通常只在目标窗口不活动时)。然而, 此方法不是对所有的窗口和控件都有效.
备注
在滚动鼠标滚轮时, 有些程序不会接受大于 1 的 ClickCount. 对于这些程序, 请使用循环来转动多个格数, 例如这个例子转动 5 格:
Loop, 5 ControlClick, Control, WinTitle, WinText, WheelUp
窗口标题和文本是区分大小写的. 只有在打开 DetectHiddenWindows 设置时,才能检测到隐藏窗口。
相关
SetControlDelay, Control, ControlGet, ControlGetText, ControlMove, ControlGetPos, ControlFocus, ControlSetText, ControlSend, Click
示例
ControlClick, OK, Some Window Title ; 点击 OK 按钮 ControlClick, x55 y77, WinTitle ; 在坐标上进行点击. 注意 X 和 Y 之间的空隙. ; 下面的方法可以提高可靠性并减少副作用: SetControlDelay -1 ControlClick, Toolbar321, WinTitle,,,, NA x192 y10 ; 使用 NA 模式在相对于命名控件的坐标处进行点击.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论