找回密码
 加入
搜索
查看: 3000|回复: 2

[IE类操作] [已解决]指定网址列出所有连接及对应的名称,IE+GUI妇代码有点小问题

[复制链接]
发表于 2010-8-2 00:23:45 | 显示全部楼层 |阅读模式
本帖最后由 isayr 于 2010-8-3 00:01 编辑

程序如下。功能是指定网址然后在listview中列出连接名称及对应连接,附带查找列表中的链接。程序不知道哪里出错,有时会对输入的网址无效,另外一个大问题是比如我输入google的首页可以获取地址,然后再输入百度的首页,列表如何正常显示。也就是清空以前的数据,载如新数据
#include <IE.au3>
#include <WinAPI.au3>
#include <GuiListView.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Dim $url=""
_IEErrorHandlerRegister()
Global $oIE = _IECreateEmbedded()
$Form1 = GUICreate("地址快速查询器", 492, 425, 200, 125)
$label1=GUICtrlCreateLabel("输入地址",20,28,50,24)
$urlinput=GUICtrlCreateInput("url地址",80,20,280,24)
$getbt=GUICtrlCreateButton("获取地址",370,20,100,24)
$L = GUICtrlCreateListView("序号|连接文字|地址", 8, 60, 457, 300,-1,BitOR($WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT))
GUICtrlSendMsg($L, 0x101E, 0, 400)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 40)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 200)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 210)
$label2=GUICtrlCreateLabel("排除地址",20,375,50,24)
$urlinput2=GUICtrlCreateInput("要排除的url地址",80,370,280,24)
$getbt2=GUICtrlCreateButton("获取地址",370,370,100,24)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
        Case $GUI_EVENT_CLOSE
                Exit
        Case $getbt
                _chage()
                
        Case $getbt2
                _Search(GUICtrlRead($urlinput2))
        
EndSwitch
WEnd


Func _Search($sText)
        $iIndex = _GUICtrlListView_FindInText($L, $sText)
        _GUICtrlListView_ClickItem($L, $iIndex)
        EndFunc   ;==>_Search
        
Func _chage()
 $url = GUICtrlRead($urlinput)
 GUICreate("mytest", 700, 600, (@DesktopWidth - 700) / 2, (@DesktopHeight - 600) / 2)
GUICtrlCreateObj($oIE, 0, 0, 700, 600)
GUISetState(@SW_MINIMIZE)
                _IENavigate($oIE, $url)
                $oLinks =_IELinkGetCollection ($oIE)
                $iNumLinks = @extended
                Dim $i=0
For $oLink In $oLinks
        $ol=StringTrimRight($olink.href,1)
     _GUICtrlListView_AddItem($L,$i, $i)
        _GUICtrlListView_AddSubItem($L,$i,$ol, 2)
         $sLinkText = _IEPropertyGet($oLink, "outerText")
        _GUICtrlListView_AddSubItem($L,$i,$sLinkText, 1)
        $i=$i+1
Next
EndFunc   ;==>_chage
发表于 2010-8-2 12:01:57 | 显示全部楼层
清空listview中的数据,可以直接用

_GUICtrlListView_DeleteAllItems($L)

输入的网址无效是什么原因?可以尝试把$oIE的窗口显示出来,看看具体情况
 楼主| 发表于 2010-8-3 00:00:56 | 显示全部楼层
嗯,谢谢ls。问题已经解决了,而且不会出现不显示的问题。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-3 12:27 , Processed in 0.090070 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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