- 版本 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
- #指令
SendMode [v1.0.43+]
让 Send 和 SendInput 或 SendPlay 具有相同的功能而不是默认的(SendEvent)。也使 Click 和 MouseMove/Click/Drag 使用指定的方法。
SendMode Input|Play|Event|InputThenPlay
首个参数为下列单词的其中一个:
Event: 这是所有脚本开始时默认使用的. 它让 Send, SendRaw, Click 和 MouseMove/Click/Drag 使用 SendEvent 模式.
Input: 让 Send, SendRaw, Click 和 MouseMove/Click/Drag 切换到 SendInput 方法. 已知限制:
- Windows 资源管理器会忽略 SendInput 模拟的某些导航的热键, 例如 Alt+LeftArrow. 要变通解决此问题,请使用
SendEvent !{Left}
或SendInput {Backspace}
。
InputThenPlay [v1.0.43.02+]: 与上面相同, 不过当 SendInput 不可用 时恢复为下面的 Play 模式而不是退回到 Event 模式. 这也会使得 SendInput 命令 自身在 SendInput 不可用时恢复到 Play 模式.
Play: 让 Send, SendRaw, Click 和 MouseMove/Click/Drag 切换到 SendPlay 方法.
已知限制:
- 不能发送在当前键盘布局上不存在的字符 (例如英语中的 &"https://www.wenjiangs.com/doc/AutoHotkey-Send">SendEvent.
- 在 RichEdit 控件 (可能还有其他的) 例如 WordPad 和 Metapad, 模拟鼠标拖动可能没有效果. 要为特殊的拖动使用替换模式,请参照此例:
SendEvent {Click 6, 52, down}{Click 45, 52, up}
。 - 模拟鼠标滚轮的滚动只进行一个方向上的移动 (通常是向下, 但在一些程序中可能是向上). 此外, 滚轮的滚动在类似 MS Word 和 Notepad 的程序中可能没有效果. 要为特殊的滚动使用替换模式,请参照此例:
SendEvent {WheelDown 5}
。 - 当在自动执行段(脚本的顶部)使用
SendMode Play
时,会影响所有的重映射按键并可能失去它们的某些功能。请参阅 SendPlay 的重映射限制 了解详情. - SendPlay 不会触发 AutoHotkey 的热键或热字串及由操作系统或其他程序注册的全局热键。
备注
由于 SendMode 也改变了 Click 和 MouseMove/Click/Drag 的模式, 所以您有机会为特殊的鼠标事件使用不同的模式. 实现这种操作最便捷的方法是使用 {Click}. 例如:
SendEvent {Click 100, 200} ; SendEvent 使用更老更传统的方法进行点击.
如果在自动执行段 (脚本的顶部) 使用了 SendMode, 那么它还会影响 键盘和鼠标重映射. 尤其是您在重映射时使用了 SendMode Play
,请参阅 SendPlay 的重映射限制。
每个新运行的 线程 (例如 热键, 自定义菜单项 或 定时 子程序) 都会以此命令的默认设置开始. 通过在脚本的自动执行段 (脚本的顶部) 使用此命令可以改变这个默认设置.
相关
Send, SetKeyDelay, SetMouseDelay, Click, MouseClick, MouseClickDrag, MouseMove
示例
SendMode Input SendMode InputThenPlay
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论