Neuis 发表于 2012-10-26 14:31:26

为什么IE创建了后会死掉,不会自动退出脚本呢?[已解决]

本帖最后由 Neuis 于 2012-11-1 10:08 编辑


#include <IE.au3>
#Include <ScreenCapture.au3>
Local $oIE = _IECreate ("about:blank",1,1,0)
_IEDocWriteHTML ( $oIE, "<script> javascript: alert (navigator.userAgent)</script>")
WinWait("Message from webpage")
If FileExists(@WorkingDir & "\IECheck.jpg") Then
FileDelete(@WorkingDir & "\IECheck.jpg")
EndIf
_ScreenCapture_CaptureWnd(@WorkingDir & "\IECheck.jpg",WinWait("Message from webpage"))
Sleep (1000)
WinKill("Message from webpage")
WinKill("Blank Page - Windows Internet Explorer")
exit

Neuis 发表于 2012-10-26 14:34:08

{:face (319):}求帮助阿

annybaby 发表于 2012-10-26 16:40:11

winwait的问题,建议所有的程序都尽量不要使用带有wait的命令或函数,除非不得已

xms77 发表于 2012-10-26 21:28:56

回复 1# Neuis
万一等了一辈子都没有等到不就是当机了吗?

www378660084 发表于 2012-10-27 12:43:18

你那玩意是英文系统的吧,中文是这个提示,标题不一样滴
WinWait("来自网页的消息")

Neuis 发表于 2012-10-27 13:51:32

是英文系统,主要我想不明白winwait出了什么问题,而且奇怪的是编译成EXE后运行第一次手动WinKill("Message from webpage")

WinKill("Blank Page - Windows Internet Explorer")后不退出脚本,再次运行第二次exe后却可以了。

unique009 发表于 2012-10-29 14:04:00

建议用循环检测来代替winwait函数,因为winwait没有超时选项
例如
for $i=0 to 100
if WinExists("来自网页的消息") then exitloop
sleep(100)
if $i=100 then MsgBox(0, "Error", "TimeOut!")
next

Neuis 发表于 2012-10-29 14:57:42

回复 7# unique009
首先谢谢你的帮助,当还是不行,我刚找到了原因了,是因为
(来至IE的UDF)Func _IEDocWriteHTML(ByRef $o_object, $s_html)
        If Not IsObj($o_object) Then
                __IEErrorNotify("Error", "_IEDocWriteHTML", "$_IEStatus_InvalidDataType")
                Return SetError($_IEStatus_InvalidDataType, 1, 0)
        EndIf
        If Not __IEIsObjType($o_object, "browserdom") Then
                __IEErrorNotify("Error", "_IEDocWriteHTML", "$_IEStatus_InvalidObjectType", "Expected document element")
                Return SetError($_IEStatus_InvalidObjectType, 1, 0)
        EndIf
        ;
        $o_object.document.Write($s_html)
        $o_object.document.close()
        Local $oTemp = $o_object.document
        _IELoadWait($oTemp)
        Return SetError(@error, 0, -1)
EndFunc   ;==>_IEDocWriteHTML$o_object.document.Write($s_html)当去到这句就停掉了,我想原因是因当写完后就弹出提示框了,$o_object.document.close()这段无法运行,导致不能释放。
页: [1]
查看完整版本: 为什么IE创建了后会死掉,不会自动退出脚本呢?[已解决]