SendMode [v1.0.43+]

优质
小牛编辑
134浏览
2023-12-01

Send 和 SendInput 或 SendPlay 具有相同的功能而不是默认的(SendEvent)。也使 Click 和 MouseMove/Click/Drag 使用指定的方法。

SendMode Input|Play|Event|InputThenPlay

首个参数为下列单词的其中一个:

Event: 这是所有脚本开始时默认使用的. 它让 Send, SendRaw, ClickMouseMove/Click/Drag 使用 SendEvent 模式.

Input: 让 Send, SendRaw, ClickMouseMove/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, ClickMouseMove/Click/Drag 切换到 SendPlay 方法.
已知限制:

  • 不能发送在当前键盘布局上不存在的字符 (例如英语中的 &"https://www.xnip.cn/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 也改变了 ClickMouseMove/Click/Drag 的模式, 所以您有机会为特殊的鼠标事件使用不同的模式. 实现这种操作最便捷的方法是使用 {Click}. 例如:

SendEvent {Click 100, 200}  ; SendEvent 使用更老更传统的方法进行点击.

如果在自动执行段 (脚本的顶部) 使用了 SendMode, 那么它还会影响 键盘和鼠标重映射. 尤其是您在重映射时使用了 SendMode Play,请参阅 SendPlay 的重映射限制

每个新运行的 线程 (例如 热键, 自定义菜单项定时 子程序) 都会以此命令的默认设置开始. 通过在脚本的自动执行段 (脚本的顶部) 使用此命令可以改变这个默认设置.

相关

Send, SetKeyDelay, SetMouseDelay, Click, MouseClick, MouseClickDrag, MouseMove

示例

SendMode Input
SendMode InputThenPlay

最后更新:

类似资料

  • 不检查空变量是否为环境变量(建议所有新脚本使用)。 #NoEnv 在脚本的任意位置指定 #NoEnv 这行语句可以避免脚本检查空变量是否为环境变量。例如: #NoEnv MsgBox %WinDir% 上面这个例子中不会检索 "WinDir" 环境变量(尽管这可以通过在脚本顶部附近加上 WinDir := A_WinDir 来解决)。 建议所有的新脚本使用 #NoEnv,因为: 每当表达式或命令中

  • 在指定坐标处点击鼠标按钮。它还可以按下鼠标按钮,转动鼠标滚轮或移动鼠标。 这里有一些常见用法的例子 (所有逗号都是可选的): Click (单独的) 在鼠标光标的当前位置点击一次鼠标左键. Click 44, 55 在 44, 55 坐标 (基于 CoordMode) 处点击一次鼠标左键. Click right 44, 55 与上述相同, 不过这里点击鼠标右键. Click 2 在光标的当前位置

相关阅读