AlexanderYan 发表于 2010-1-29 21:27:47

winwaitactive后send失效

在做一个自动上传的功能,公司内网上有个网页,点击一个按钮后可以打开本地浏览,选择一个指定的文件倒入。
已经可以做到点击那个按钮后顺利弹出本地浏览框(网页本身功能),此时我想用send语句在路径上填入想上传的文件,然后点击确定即可。但是send语句不执行,用msgbox调试的时候发现,只有在手动关闭本地浏览文件框后,程序才自动执行下去。。。

。。。。。。
$oFile = _IEGetObjByName ($oIE, "my_file_element")
_IEAction ($oFile, "click")   
;此时弹出本地浏览框,然后:
WinWaitActive("Choose file")
Send("360se.ini");Edit已经激活,到此应该在路径上填入了这个360se.ini,但实际上没有执行,但如果手动点击关闭本地浏览之后,send语句才开始执行。。。
请高人相助。。。无法发送全段程序因为外网无法访问这个网页。

AlexanderYan 发表于 2010-1-29 22:00:37

:face (31):

AlexanderYan 发表于 2010-1-31 21:48:37

:face (30):

sanmoking 发表于 2010-2-1 15:56:52

WinWait ( "Choose file" )
WinActivate ( "Choose file")
Send("360se.ini")

sanmoking 发表于 2010-2-1 15:59:05

WinWait + WinActivate ≠ WinWaitActive
貌似
WinWait + WinActivate = WinWaitActive + 手动激活窗口

AlexanderYan 发表于 2010-2-3 01:32:27

没用阿还是一样不会输入数据。。。
奇怪的问题是如果我先运行一遍这个程序,当卡在输入文件名的地方以后,再开启一次这个程序,即同时运行两个相同程序的时候,第二个程序会在第一个程序打开的Choose file里输入正确的字符串。。。无语了。。

afan 发表于 2010-2-3 02:32:45

单线程的原因,类似: http://www.autoitx.com/forum.php?mod=viewthread&tid=10984

lanfengc 发表于 2010-2-5 18:39:21

用窗口工具找到你要输入东西的控件ID.
用ControlSetText("AutoIt Help","","Edit2","23123123")
页: [1]
查看完整版本: winwaitactive后send失效