基 础 函 数 参 考


ControlSend

发送字符串到字符控件.

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

参 数

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

返 回 值

成功: 返回 1.
失败: 返回 0, 未找到窗口/控件.

备 注

ControlSend 的工作方式类似 Send 但它能直接对窗口/控件发送键击命令, 不只限于激活窗口.

ControlSend 发送命令提示符是不可靠的, 命令提示符对不同工作的正常窗口似乎是检查实际状态, 而不是接受击键消息.
对于常规 windows(操作系统), ControlSend 的可靠方法应该是常规发送 - 发送 shift(换档键), ctrl(控制键), alt(备用键) 等等.

如同 Send 函数帮助页提到的, 在大写锁定时, 无法模拟使用 Shift 键. 一个例子是使用捷克键盘. 很好的替换方法是使用 ControlSetText 函数.

控件可能需要用 ControlFocus 命令获得焦点, 特别是引用由脚本创建的控件 ID 时.

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

相 关 函 数

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

函 数 示 例


ControlSend("[CLASS:Notepad]", "", "Edit1", "This is a line of text in the notepad window")

;以上为官方原示例,以下为中文网文档附加示例:

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

provider with jb51.net (unicode)