函数参考


ControlSend

向指定的控件发送字符串.

ControlSend ( "窗口标题", "窗口文本", 控件ID, "字符串" [, 标志] )

参数

窗口标题 目标窗口标题.
窗口文本 目标窗口文本.
控件ID 目标控件.请查看关于控件的说明.
字符串 要发送到控件的字符串.
标志 [可选参数] 更改程序处理"按键"的方式:
  标志 = 0 (默认),按键序列中含有的特殊字符比如 + 和 {LEFT} 将被视为 SHIFT 和 左箭头 键.
  标志 = 1, 按键将按原样发送.

返回值

成功: 返回值为1.
失败: 返回值为0,说明未找到目标窗口/控件.

注意/说明

ControlSend 工作和 Send 类似,但它可以直接发送按键到控件和窗口,而不只是活动窗口.

ControlSend 对于命令提示行操作不稳定,因为它和正常窗口工作方式不一样(似乎检查物理按键状态超过了接受按键消息). 正常窗口下 ControlSend 可能比 Send 更可靠 - 并且它能发送shift, ctrl, alt 等等.

话说键盘 CAPS LOCK 开启情况下,Send 将发送不同的字符,也不能模拟Shift键. 比如使用捷克键盘布局. 一个好的解决办法是使用 ControlSetText.

控件可能需要先使用 ControlFocus 命令得到焦点, 特别是当引用的控件ID由脚本本身创建.

Opt("SendKeyDelay",...) 改变发送按键之间的间歇长度.
Opt("SendKeyDownDelay",...) 改变按键在释放之前被按压的时间长度.

相关

ControlCommand, Send, ControlSetText, ControlFocus, SendKeyDelay (Option), SendKeyDownDelay (Option)

示例/演示


Run("notepad.exe")
WinWaitActive("[CLASS:Notepad]","")
ControlSend("[CLASS:Notepad]", "", "Edit1", "将会发送一些文本到记事本窗口去.")