button失效?还是Navigate?
本帖最后由 kkikk 于 2009-9-9 22:27 编辑定义了几个按钮button1 button2 button3
一个按钮对应一个网址。
随意点击按钮切换Navigate中的页面,结果有点混乱,部分按钮点一次可以正常访问,个别按钮点一次无反映,点2次才能切换到访问的页面。不知道有没有人遇到过这种情况?
来个例子说明下:点击button1,打开www.111.com,点击button2 打开www.222.com,出现问题的时候是这样的情况,点击button2打开www.222.com之后,再点击www.111.com对应的按钮button1,但是点击1次无效,需要点2次button1,才能打开www.111.com。
$oForm = GUICreate("网页浏览", 720, 570, (@DesktopWidth - 720) / 2, (@DesktopHeight - 600) / 2)
$oIE = _IECreateEmbedded ()
$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 720, 500)
$Button1 = GuiCtrlCreateButton("b1", 20, 520, 80, 30)
$Button2 = GuiCtrlCreateButton("b2", 220, 520, 80, 30)
$Button3 = GuiCtrlCreateButton("b3", 320, 520, 80, 30)
$Button4 = GuiCtrlCreateButton("b4", 420, 520, 80, 30)
GUICtrlSetOnEvent($Button1, "Gui")
GUICtrlSetOnEvent($Button2, "Gui")
GUICtrlSetOnEvent($Button3, "Gui")
GUICtrlSetOnEvent($Button4, "Gui")
GuiSetState(@SW_SHOW)
$oIE.Navigate($url)
While 1
WEnd
Func Gui()
Switch @GUI_CtrlId
Case $Button1
$oIE.Navigate($url1)
Case $Button2
$oIE.Navigate($url2)
Case $Button3
$oIE.Navigate($url3)
Case $Button4
Exit
EndSwitch
EndFunc 第1.你这个问题是因为页面载入后的问题,因为网页个别地方还未打开,即加载网页未完,造成等待,如果设置为不等待(即: _IENavigate(www.xxx.com,0))就可以,如你这张贴http://www.autoitx.com/forum.php?mod=viewthread&tid=9621&page=1&fromuid=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的作品,好好研究下吧,里面的版权及地址被我改了,本来想修改它为真正浏览器(因为有很多不足,但没时间) 除了感谢不知道还能说些什么,在论坛里学到很多知识,继续努力研究。 有这种负责人的管理员,此站不火,火星人都不愿意 :face (25): 顶一下007~~~
页:
[1]