找回密码
 加入
搜索
查看: 1087|回复: 4

button失效?还是Navigate?

[复制链接]
发表于 2009-9-9 13:44:54 | 显示全部楼层 |阅读模式
本帖最后由 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金钱 +10 收起 理由
kn007 + 10 再接再厉,希望我解决你的问题了! . 问题 ...

查看全部评分

发表于 2009-9-9 21:46:53 | 显示全部楼层
第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的作品,好好研究下吧,里面的版权及地址被我改了,本来想修改它为真正浏览器(因为有很多不足,但没时间)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2009-9-9 22:27:14 | 显示全部楼层
除了感谢不知道还能说些什么,在论坛里学到很多知识,继续努力研究。
发表于 2009-9-10 09:52:04 | 显示全部楼层
有这种负责人的管理员,此站不火,火星人都不愿意
发表于 2009-9-10 09:54:58 | 显示全部楼层
顶一下007~~~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-28 03:59 , Processed in 0.090969 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表