|
本帖最后由 ioripalm 于 2012-11-17 21:25 编辑
今天遇到一个问题.关于ControlSetText后,如何刷新文本显示,就是已经修改的文本如何刷新.
做一个软件的配置过程,有一个添表格的步骤,其中有一个edit控件默认是XXXX,要修改成AAAA,ControlSetText后发现没有变化,带上重画参数,还是没有变化.ControlGetText发现文字其实已经改变了,暂停脚本,用鼠标双击文本区域,自动变过来了,按TAB键移动光标到这个文本框内也可以刷新到AAAA,但是不管它直接下一步的话,提交上去的就是XXXX.
请问哪位大侠知道这是怎么回事啊!不能这个位置要用鼠标模拟点击吧!
——————————————————————————————
今天终于发现哪里出错了。
原来是因为窗口上的一个"Static控件"提示输入的文字会根据你的焦点而变化文字内容,但是ControlSetText数据到edit里面后(ControlSetText原来并不改变焦点,只是把字符填到你制定的控件内,焦点还是原来的),Static控件的文字并不会变化(窗口信息工具获取的Static控件也是没变化的文字),所以我悲催的在WinWaitActive("窗口标题","Static控件"),"Static控件"这里写的还是之前的文字(倒霉我正好找了这个地方的文字),导致WinWaitActive一直找不到这个窗口,程序就卡死在找窗口这个环节,我在后面加了无数种代码,都导致脚本处于暂停而不执行.其实ControlClick, ControlFocus ,ControlSend什么的,都管用.
菜鸟就是菜鸟啊!这点小错误导致走那么多弯路,不过好在学会了ControlClick, ControlFocus ,ControlSend等函数的用法,也算有收获!
再次感谢大家的帮助! |
|