找回密码
 加入
搜索
查看: 4738|回复: 11

[AU3基础] 一个界面,在3.7几有问题,在3.3.6.1就没有,麻烦大家帮忙测试下

  [复制链接]
发表于 2012-4-18 22:21:36 | 显示全部楼层 |阅读模式
本帖最后由 iori2882 于 2012-4-18 22:42 编辑

下面的代码,,在3.7几的版本有个问题,点$Button2可以刷新界面,在点回$Button1也可以刷新界面,但是 点到$Button3在点回Button2就切换不回去了点击界面的叉退出也退出不了。但是在3.3.6.1就完全好用,,,麻烦大家用3.7几版本的,帮忙测试一下,看是我机器问题还是版本问题。
    而且我大量的用到了GUISetState(@SW_SHOW, $zhu_gui)之类的语句,导致在页面切换到时候有的时候会卡,有别的办法么?

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#region ### START Koda GUI section ### Form=
Global $zhu_gui = GUICreate("界面预览", 600, 400, -1, -1)
GUISetBkColor(0x4682B4)
$Button1 = GUICtrlCreateButton("Button1", 24, 24, 83, 57)
$Button2 = GUICtrlCreateButton("Button2", 232, 32, 75, 49)
$Button3 = GUICtrlCreateButton("Button3", 432, 32, 75, 49)
$ne_gui1 = GUICreate("", 600 - 20, 260, 10, 110, $WS_POPUP, $WS_EX_MDICHILD, $zhu_gui)
$Button4 = GUICtrlCreateButton("Button4", 64, 168, 75, 25)
$Input1 = GUICtrlCreateInput("Input1", 176, 192, 145, 21)
$Edit1 = GUICtrlCreateEdit("", 400, 208, 121, 105)
GUICtrlSetData(-1, "Edit1")
$MonthCal1 = GUICtrlCreateMonthCal("2012/04/16", 184, 120, 267, 153)
$ne_gui2 = GUICreate("", 600 - 20, 260, 10, 110, $WS_POPUP, $WS_EX_MDICHILD, $zhu_gui)
$Button5 = GUICtrlCreateButton("Button5", 64, 168, 75, 25)
$List1 = GUICtrlCreateList("", 224, 208, 121, 97)
$Combo1 = GUICtrlCreateCombo("Combo1", 416, 168, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Progress1 = GUICtrlCreateProgress(424, 288, 150, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Local $oIE = _IECreateEmbedded()
$ne_gui3=GUICreate("", 580, 260, 10, 110,$WS_POPUP,$WS_EX_MDICHILD,$zhu_gui)
GUICtrlCreateObj($oIE, 1, 1, 580, 260)
Local $GUI_Button_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30)
Local $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
Local $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
Local $GUI_Button_Stop = GUICtrlCreateButton("Stop", 340, 420, 100, 30)
GUICtrlSetColor(-1, 0x0860a8)
GUISetState(@SW_SHOW, $zhu_gui)
GUISetState(@SW_SHOW, $ne_gui1)
#endregion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        ExitLoop
                 Case $Button1
                           GUISetState(@SW_SHOW, $zhu_gui)
                           GUISetState(@SW_SHOW, $ne_gui1)
                           GUISetState(@SW_HIDE, $ne_gui2)
                    GUISetState(@SW_HIDE, $ne_gui3)
                Case $Button2
                        GUIDelete($Button3 )

                        GUISetState(@SW_SHOW, $zhu_gui)
                        GUISetState(@SW_HIDE, $ne_gui1)
                        GUISetState(@SW_SHOW, $ne_gui2)
             GUISetState(@SW_HIDE, $ne_gui3)
                 Case $Button3
                          GUISetState(@SW_HIDE, $ne_gui1)
                           GUISetState(@SW_HIDE, $ne_gui2)
                           GUISetState(@SW_SHOW, $zhu_gui)
                
                           GUISetState(@SW_SHOW, $ne_gui3)

                         _IENavigate($oIE, "http://www.163.com")
                        
                Case $Button4
                        MsgBox(0, 0, 4)
                Case $Button5
                        MsgBox(0, 0, 5)
        EndSwitch
WEnd
GUIDelete()
发表于 2012-4-18 23:04:23 | 显示全部楼层
回复 1# iori2882
你代码里相应位置改为以下的:
_IENavigate($oIE, "http://www.163.com", 0)

这已经是'常识', 论坛上已有不少这方面的提问和交流的帖子!
在一些AU3版本中, 用IE..au3打开链接时, 如果是默认要等待的话, 经常要等很久!
我尝试过等十几分钟后能返回.
所以, 如果是我, 绝对会用 0 让它立即返回!
如果还要继续进行网页操作, 则下一步要加上相应的 Sleep 延迟!

评分

参与人数 3金钱 +30 贡献 +2 收起 理由
iori2882 + 10 谢谢,不是返回的事情,在3.6里不加也是好用的 ...
afan + 20
lixiaolong + 2 呵呵,你比我快一步~

查看全部评分

发表于 2012-4-18 23:07:17 | 显示全部楼层
回复 1# iori2882

应该跟版本没关系,因为IENavigate没加载完毕,所以不能切换.
点击$Button3后多等一会儿试试,或者让_IENavigate立即返回试试.

_IENavigate ( ByRef $o_object, $s_url [, $f_wait = 1] )

[可选参数]: 指定在返回前是否等待窗口加载完毕
0 = 立即返回,不等待窗口加载
1 = (默认)等待窗口加载完毕后返回

评分

参与人数 2金钱 +30 贡献 +2 收起 理由
afan + 20
user3000 + 10 + 2 终于和您志同道合了, 呵呵!

查看全部评分

发表于 2012-4-18 23:17:48 | 显示全部楼层
哎,我最怕的是写不出代码,而不是排查问题,你的系统没换,只是AU3换了个版本,怎么也不是GUISetState得问题吧,你换版本但是 点到$Button3在点回Button2就切换不回去了,你是要检查$Button3的事件吧,明显是_IENavigate($oIE, "http://www.163.com")捣的鬼,随便翻翻_IENavigate的帮助文档,有试过这样吗你:
_IENavigate ($oIE, "http://www.autoitscript.com",0)
一直没换版本么法帮你测

评分

参与人数 3金钱 +40 收起 理由
iori2882 + 10 在3.3里不加也是好用的
lixiaolong + 10 热心人~
afan + 20

查看全部评分

发表于 2012-4-18 23:19:54 | 显示全部楼层
湿了,知道已有人解决偶就不掺和了。
发表于 2012-4-19 00:47:54 | 显示全部楼层
在3.7.x 版本出现时已发现这问题,直到3.9已经修正了

评分

参与人数 1金钱 +10 收起 理由
iori2882 + 10 谢谢你

查看全部评分

发表于 2012-4-19 12:24:04 | 显示全部楼层
回复 6# 风行者

我用3.3.7.21测试的,没发现有这个问题啊??

下面两个代码都没问题的...
_IENavigate($oIE, "http://www.163.com")
_IENavigate($oIE, "http://www.163.com", 0)

评分

参与人数 1金钱 +10 收起 理由
iori2882 + 10 谢谢你

查看全部评分

发表于 2012-4-19 12:44:13 | 显示全部楼层
3.3.9.4正常。
 楼主| 发表于 2012-4-20 13:56:36 | 显示全部楼层
恩 谢谢大家了 昨天有事没上.....
_IENavigate($oIE, "http://www.163.com", 0)
后面加上0确实是能行了
但是在3.3.6.1里面 不加0也是好用的....3.7里面 那网页确实加载完毕了 也不行
好像不是返回没返回完的事情,,,应该是个小BUG吧.....
 楼主| 发表于 2012-4-20 14:00:50 | 显示全部楼层
回复  风行者

我用3.3.7.21测试的,没发现有这个问题啊??

下面两个代码都没问题的...
_IENavigat ...
lixiaolong 发表于 2012-4-19 12:24


我的版本是3.3.7.15
发表于 2012-5-12 15:57:20 | 显示全部楼层
可以正常切 3.3.9.4
发表于 2012-5-12 20:54:45 | 显示全部楼层
回复 1# iori2882
我的也是3.3.7.15,不能返回,但是加了0后就能立即返回了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-14 13:06 , Processed in 0.082061 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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