找回密码
 加入
搜索
查看: 9576|回复: 17

[AU3基础] 关于controlcommand()的问题?[已解决]

 火.. [复制链接]
发表于 2010-3-30 09:06:26 | 显示全部楼层 |阅读模式
本帖最后由 newuser 于 2010-3-30 14:05 编辑

发错地方了,我想新建立个文本文件并存在指定目录下,可是出了问题?代码如下:
Send("#r")
WinWaitActive("运行")
Send("notepad.exe{Enter}")
WinWaitActive("无标题 - 记事本")
Send("这里是通过WIN+R打开运行窗口,再自动输入notepad.exe后,在打开记事本程序自动输入指定内容后保存并退出 {F5}")
;Send("现在的时间/日期是 {F5}")
WinClose("无标题 - 记事本")
WinWaitActive("记事本")
Send("!Y")
WinWaitActive("另存为")
ControlClick("另存为","保存在(&I)","ComboBox1")
Send("C:\")
;我觉得ComboBox1已经捕捉到了,因为默认路径是将文件存储到"我的文档"
;但是我将路径改到C盘根目录,它怎么将文本存储到我的F盘了?
;我用了controlcommand(("另存为","保存在(&I)","ComboBox1","SelectString",'本地磁盘 (C:)')也不行啊?
ControlClick("另存为","保存在(&I)","Edit1")
Send("testautosave1.txt")
;但是我对Edit1操作怎么成功了呢?controlclick()对他们的操作应该是类似的呀!
还是请大家看一下截图吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-3-30 09:52:30 | 显示全部楼层
回复 1# newuser
还是无法"存储到指定路径下",我该怎么办?
代码如下:
Send("#r")
WinWaitActive("运行","打开(&O)")
ControlSetText("运行","打开(&O)","Edit1","notepad.exe")
ControlClick("运行","打开(&O)","Button2")
WinWaitActive("无标题 - 记事本")
Send("用于测试对于ComboBox的操作,其中还包括测试controlcommand下的setcurrentselection  selectstring")

WinClose("无标题 - 记事本")
;Send("!F")
;Send("!X")

WinWaitActive("记事本","文件 无标题 的文字已经改变。")
ControlClick("记事本","文件 无标题 的文字已经改变。","Button1")
WinWaitActive("另存为","保存在")

ControlCommand("另存为","保存在","ComboBox1","SelectString","本地磁盘 (C:)")
;ControlCommand("另存为","保存在","ComboBox1","SetCurrentSelection",5)

ControlSetText("另存为","保存在","Edit1","testComboBox.txt")
ControlClick("另存为","保存在","Button2")
另外请教:
WinClose("无标题 - 记事本")
;Send("!F")
;Send("!X")
我用send()来 打开 "文件菜单"再"!X"怎么不能打开提示是否保存的窗口呢?试了近2个小时了,请大家多帮忙,谢谢!
发表于 2010-3-30 10:03:46 | 显示全部楼层
我觉得不能用Send("C:\")
 楼主| 发表于 2010-3-30 10:38:48 | 显示全部楼层
回复 3# xz00311
我也觉得send("c:\")不行,可是我测试controlcommand()也不行,能给个答案吗?我已经测试的有些麻木了,在网上找了一些资料,但都没有结果?
发表于 2010-3-30 10:48:55 | 显示全部楼层
回复 4# newuser

建立一个文本文档不用这么麻烦的吧,直接文件操作,用不了几行代码:
$filepath = "c:\testComboBox.txt"
$text = "用于测试对于ComboBox的操作,其中还包括测试controlcommand下的setcurrentselection  selectstring"
$file=FileOpen ($filepath,2)
FileWrite ($file,$text)
FileClose ($file)
上面的代码就可以实现你要的效果。
发表于 2010-3-30 10:53:55 | 显示全部楼层
如果你一定要测试controlclick()
我看了你的代码,ControlCommand("另存为","保存在","ComboBox1","SelectString","本地磁盘 (C:)")
这句不行的原因我估计是“本地磁盘 (C:)”这句字符串的问题,在这之前还有个图标,可能是这个图标引起字符串的不匹配,所以ControlCommand失效。
解决的办法,是不用去管Combobox1的选项,把下面的这句改成:
ControlSetText("另存为","保存在","Edit1","c:\testComboBox.txt")
这样应该就可以了。

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-3-30 14:04:14 | 显示全部楼层
回复 5# C.L
谢谢,问题解决了.
因为练习遇到了有关controlcommand()的问题,不知道该命令的'setcurrentselection'和'selectstring'为什么不好使?
不过非常感谢阁下的指导,直接用controlsettext()就解决了,看来遇到问题也要换个思路解决才行,我太转牛角尖了.
不过还是忍不住再专牛角尖一下,如果存储路径有"我的文档"诸如"本地磁盘 (C:)"之类 ,用setcurrentselection该怎么完成啊?它不涉及到图标的问题啊!
发表于 2010-3-30 15:10:06 | 显示全部楼层
回复 7# newuser


    如果非要模拟操作的话在ControlCommand操作的前后都ControlClick点击一下即可。
ControlClick("另存为","保存在","ComboBox1")
ControlCommand("另存为","保存在","ComboBox1","SelectString","本地磁盘 (c:)")
ControlClick("另存为","保存在","ComboBox1")

当然,由于后面还有ControlSetText操作,因此以上的操作是多余的,直接
ControlSetText("另存为","保存在","Edit1","C:\testComboBox.txt")
即可
 楼主| 发表于 2010-3-30 17:47:38 | 显示全部楼层
回复 8# afan
第一个controlclick()是为了获得ComboBox的焦点吗?
那么controlcommand()怎么无法获得ComboBox的焦点吗?
既然用了第一个controlclick(),那么第二个controlclick()又是做什么用的呢?
发表于 2010-3-30 17:49:11 | 显示全部楼层
都是点击一下的意思~ 因为这个控件比较特殊,不是普通的ComboBox
 楼主| 发表于 2010-3-30 18:01:29 | 显示全部楼层
回复 10# afan

刚才又试了一下,似乎明白了:
因为她特殊,controlclick()先让它获得焦点,在利用controlcommand()下的selectstring命令选中希望的存储路径,再controlclick()返回到到ComboBox上,这样理解容易些!

我刚才又试了SetCurrentSelection,不是很理想,存储路径乱变,用它如何能实现呢?
发表于 2010-3-31 12:17:04 | 显示全部楼层
楼主的代码我试过了,正常,没有定位到F盘
 楼主| 发表于 2010-3-31 14:51:33 | 显示全部楼层
回复 12# lluxury
呵呵,你是怎么测试的,定位到C盘了吗?我指定是用 controlcommand的setcurrentselection方法.
发表于 2010-3-31 16:22:39 | 显示全部楼层
回复 13# newuser
我直接复制你在一楼的代码,执行正常,最后定位到C盘,
PS,我是英文系统
...不过,个人觉得,模拟鼠标点击很容易出问题,能不用尽量不要用
发表于 2011-3-31 20:09:01 | 显示全部楼层
_GUICtrlComboBox_SetCurSel这个函数试试
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 05:29 , Processed in 0.095744 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表