whitehead 发表于 2012-8-21 19:40:39

关于向编辑框发送文本求教诸位大侠

我在尝试用脚本让一个软件按计划自动运行时,需要在一个编辑框(Edit)里粘贴一些字符串。
我尝试用Controlsend和Controlsettext都起到了送入字符串的目的。如下
   ControlSend("soft", "", "Edit", $name)或
   ControlSetText("soft", "", "Edit", $name)
Controlsend可以用,与粘贴字符串的作用相同,唯一缺点是慢且鼠标不停颤动
Controlsettext速度快,但似乎与粘贴字符串动作不等效,引不起预期的动作
我的问题是有没有其它向控件发送文本的命令?

duck904 发表于 2012-8-21 20:07:48

粘贴字符串动作是什么
你是指类似打字的一个一个字符出来吗?

whitehead 发表于 2012-8-21 21:35:52

就是在编辑框(Edit)里点一下鼠标然后CTRL+V

xms77 发表于 2012-8-21 22:12:14

ControlSetText ( "窗口标题", "窗口文本", 控件ID, "新文本" [,标志] )
你的控件ID是不是正确,用Au3Info.exe查看一下edit框的信息呢?

xiehuahere 发表于 2012-8-22 15:20:59

回复 1# whitehead


基本就这两个命令了。

“但似乎与粘贴字符串动作不等效,引不起预期的动作” —— 不明白你实际结果是怎样的,最好描述一下。

1)用这两个命令前先使用 ControlFocus 使控件获得焦点。
2)如果编辑框内有内容,ControlSend不能保证去除原内容,往往只是附加;而ControlSetText会替换掉原内容。

whitehead 发表于 2012-8-22 21:27:24

回复 5# xiehuahere
那个软件上有两个编辑框,第一个编辑框粘贴的内容如果在所带数据库查询存在的话,会在第二个编辑框
里返回一些文本。
    用Controlsend可以在第二个编辑框里返回预期的文本。唯一缺点是慢且鼠标不停颤动
Controlsettext速度快,但在第二个编辑框里无法返回预期的文本。

当然通过这次不成功的试验对控件有了更好的认识

whitehead 发表于 2012-8-22 21:29:29

回复 4# xms77

谢谢关注,这个命令使用没问题,只是如6楼所说,其作用与Controlsend相差很大。
页: [1]
查看完整版本: 关于向编辑框发送文本求教诸位大侠