如何自动点击或关闭IE弹出的 来自网页的消息
本帖最后由 .個朲綉√ 于 2013-5-24 09:33 编辑$Ele = _IETagNameGetCollection($oIE,"INPUT")
For $Input In $Ele
If $Input.classname<>'0' And $Input.type='submit' Then
$Input.Click()
MsgBox(1,"提示","弹窗后检测程序是否继续运行.")
ExitLoop
EndIf
Next用以上法点击按钮、或用下面的方法,在点击过事会弹出一个来自网页的消息窗口,这时只能手工点掉,否则程序都无法继续执行,msgbox都不弹,只有点掉来自网页的消息才会弹msgbox。 Local $oSubmit = _IEGetObjByName($oIE, "btsubmit");点击下一步
_IEAction($oSubmit, "click")http://www.autoitx.com/thread-36602-1-1.html
我在论坛和度娘上找了好久,看到这个帖子,问题和我类似,但我无法解决,我甚至重新写了一个小程序,代码如下,正常手工操作的话,弹出来自网页的消息都会自动关闭,但是用上面的代码执行弹窗后,就不会自动关闭了,求各位指教,谢谢!!While 1
WinWaitActive("来自网页的消息")
WinClose("来自网页的消息")
WEnd 消息是block掉你的脚本的,似乎只能外部搞,或者多线程 回复 1# .個朲綉√
用_IEAction($oSubmit, "focus")设置焦点至提交按钮上,再用ControlSend()发送{Enter},是一个不错的方法,楼主可一试。但前提是要点击的按钮能够获得焦点,否则一般要多线程解决了。 While 1
;WinWait("来自网页的信息", "是否继续学习")
If WinExists("来自网页的消息", "是否继续学习") Then
ControlClick("来自网页的消息", "是否继续学习", "")
EndIf
WEnd 这个很适合我们的网上培训 本帖最后由 骗子 于 2013-6-7 13:50 编辑
多进程就可以了
#include <CoProc.au3>
#NoTrayIcon
AutoItWinSetTitle("excle to flt F11退出") ;设置个标题
_CoProc('_exceldianji') ;运行子程序
While 1
Sleep(100)
WEnd
Func Form1Close()
Exit 0
EndFunc ;==>Form1Close
Func _exceldianji()
While 1
If Not WinExists('excle to flt F11退出', '') Then ExitLoop ;如果主程序不在就退出
WinWaitActive("来自网页的消息")
WinClose("来自网页的消息")
WEnd
EndFunc ;==>_exceldianji 学习学了解情况 运行中遇到msgbox这类弹出框,会把程序挂起,直到点掉弹出框后继续运行,所以要用多线程,也就是另外一个小程序来单独处理弹出框
6楼方案可行 http://www.autoitscript.com/forum/topic/114992-childproc-parallel-processing-udf/
childproc下载
将主程序和窗口处理程序都写好,像6楼那样,主程序写好,将窗口处理程序写成一个函数,在主程序弹出窗口之前事先调用窗口处理程序,然后再合适的时间主程序里面ProcessClose或者窗口处理程序自行关闭。
页:
[1]