第1.你这个问题是因为页面载入后的问题,因为网页个别地方还未打开,即加载网页未完,造成等待,如果设置为不等待(即: _IENavigate(www.xxx.com,0))就可以,如你这张贴http://www.autoitx.com/forum.php ... id=7644076#pid87287
函数_go你改一下,改成下面就可以了,不会出现你所说的情况,还有你这是同种情况不同语言发帖,以后记得不要这样
Func _GO($TargetUrl)
_IENavigate($oIE, $TargetUrl,0)
EndFunc
第2.我是个“管理”者,不是管理员,我这个管理员是挂名的,只有实权,不懂技术,谢谢你的瞧得起我!
对了,给你修改后的源码吧,如果我所答是你所问的,你对函数得去学习下,我给你个附件是专门IE的(部分为未汉化)#include <IE.au3>
_IEErrorHandlerRegister()
$oIE = _IECreateEmbedded()
$WinMain = GUICreate("网页浏览", 720, 570, (@DesktopWidth - 720) / 2, (@DesktopHeight - 600) / 2)
$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 720, 500)
$Button1 = GUICtrlCreateButton("b1", 20, 520, 80, 30)
$Button2 = GUICtrlCreateButton("b2", 120, 520, 80, 30)
$Button3 = GUICtrlCreateButton("b3", 220, 520, 80, 30)
$Button4 = GUICtrlCreateButton("b4", 320, 520, 80, 30)
$Button5 = GUICtrlCreateButton("退出", 420, 520, 80, 30)
GUISetState(@SW_SHOW)
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $Button1
_GO("http://www.sina.com.cn")
Case $Button2
_GO("http://www.china.com")
Case $Button3
_GO("http://www.sohu.com")
Case $Button4
_GO("http://www.163.com")
Case $Button5
Exit
Case -3
Exit
EndSwitch
WEnd
Func _GO($TargetUrl)
_IENavigate($oIE, $TargetUrl,0)
EndFunc
函数说明
_IENavigate
--------------------------------------------------------------------------------
指引一个存在的浏览器窗口打开指定的URL地址.
#include <IE.au3>
_IENavigate ( 对象变量, URL地址 [, 等待 = 1] )
参数
对象变量 InternetExplorer.Application,窗口或者框架(frame)对象的对象变量
URL地址 浏览的URL地址 (例如"http://www.autoitscript.com")
等待 [可选]: 定义在返回前是否等待窗口加载完毕
0 = 立即返回,不等待窗口加载
1 = (默认) 等待窗口加载完毕然后返回
返回值
成功: 返回 -1
失败: 返回0 并且设置 @ERROR
@Error: 0 ($_IEStatus_Success) = 无错
1 ($_IEStatus_GeneralError) = 一般性错误
3 ($_IEStatus_InvalidDataType) = 无效数据类型
4 ($_IEStatus_InvalidObjectType) = 无效对象类型
6 ($_IEStatus_LoadWaitTimeout) = 等候加载超时
8 ($_IEStatus_AccessIsDenied) = 访问被拒绝
9 ($_IEStatus_ClientDisconnected) = 客户端断开
@Extended: 包含无效参数数量
备注
这个函数返回值为-1.这是因为这种浏览方法没有返回值所以什么也不能表现出来.你需要采用另外的方法去来判断浏览的成功还是失败.
浏览器.au3 :盗用很久以前的一位XD的作品,好好研究下吧,里面的版权及地址被我改了,本来想修改它为真正浏览器(因为有很多不足,但没时间) |