九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
VB關(guān)于webbrowser相關(guān)操作大全

1、     WebBrowser的方法、屬性、事件------------------------------------------------------------ 2

2、     提取網(wǎng)頁源碼----------------------------------------------------------------------------------- 3

3、     防止新窗口里頭打開網(wǎng)頁--------------------------------------------------------------------- 4

4、     新Webbrowser控件打開鏈接----------------------------------------------------------------- 5

5、     去掉滾動(dòng)條-------------------------------------------------------------------------------------- 5

6、     禁止鼠標(biāo)右鍵----------------------------------------------------------------------------------- 6

7、     如何獲得網(wǎng)頁的內(nèi)容--------------------------------------------------------------------------- 6

8、     多框架框架頁面訪問--------------------------------------------------------------------------- 7

9、     獲得瀏覽器信息-------------------------------------------------------------------------------- 7

10、       彈出Webbrowser消息窗口----------------------------------------------------------------- 8

11、    向Webbrowser中寫入HTML內(nèi)容的幾種方法--------------------------------------------- 8

12、       控制頁面滾動(dòng)-------------------------------------------------------------------------------- 9

13、       判斷頁面是否可以前進(jìn)后退---------------------------------------------------------------- 9

14、       如何獲得網(wǎng)頁中被選中部分的HTML--------------------------------------------------- 10

15、       Navigate的參數(shù)調(diào)用------------------------------------------------------------------------ 11

16、       本地文件收藏夾操作----------------------------------------------------------------------- 11

17、       讓W(xué)ebbrowser全屏------------------------------------------------------------------------ 12

18、       選擇網(wǎng)頁上的內(nèi)容------------------------------------------------------------------------- 12

19、       用IE來下載文件--------------------------------------------------------------------------- 13

20、       Webbrowser確定窗口對(duì)話框------------------------------------------------------------- 14

21、       禁止WebBrowser控件中網(wǎng)頁彈窗------------------------------------------------------- 14

22、       取得源碼調(diào)試正常運(yùn)行錯(cuò)誤-------------------------------------------------------------- 15

23、       頁面元素操作------------------------------------------------------------------------------- 15

例0: 查看網(wǎng)頁元素------------------------------------------------------------------------------ 15

例1: 給username文本框內(nèi)填充內(nèi)容:--------------------------------------------------------- 15

例2: 找到提交按鈕并點(diǎn)擊--------------------------------------------------------------------- 16

例3: 難度的-------------------------------------------------------------------------------------- 16

例4: 模擬鼠標(biāo)點(diǎn)擊來點(diǎn)擊按鈕---------------------------------------------------------------- 17

例5: 根據(jù)ID直接CLICK----------------------------------------------------------------------- 17

例6: 給列表單選項(xiàng)賦值------------------------------------------------------------------------ 17

例7: 網(wǎng)頁自動(dòng)填寫表單注冊(cè)------------------------------------------------------------------- 18

24、       網(wǎng)頁按鈕的終極控制----------------------------------------------------------------------- 20

22、執(zhí)行網(wǎng)頁中的腳本------------------------------------------------------------------------------- 21

23、提取字符串或網(wǎng)頁源代碼中指定的資源(可利用這一函數(shù)做文章采集器)------------ 23

24、中文漢字轉(zhuǎn)化為URL編碼---------------------------------------------------------------------- 25

25、獲取網(wǎng)頁中的驗(yàn)證碼---------------------------------------------------------------------------- 27

26、WebBrowser控件中網(wǎng)頁按鈕的點(diǎn)擊---------------------------------------------------------- 28

27、其它------------------------------------------------------------------------------------------------ 28

1、              WebBrowser的方法、屬性、事件

WebBrowser的8個(gè)方法和13個(gè)屬性,以及它們的功能:

方法 說明

GoBack 相當(dāng)于IE的“后退”按鈕,使你在當(dāng)前歷史列表中后退一項(xiàng)

GoForward 相當(dāng)于IE的“前進(jìn)”按鈕,使你在當(dāng)前歷史列表中前進(jìn)一項(xiàng)

GoHome 相當(dāng)于IE的“主頁”按鈕,連接用戶默認(rèn)的主頁

GoSearch 相當(dāng)于IE的“搜索”按鈕,連接用戶默認(rèn)的搜索頁面

Navigate 連接到指定的URL

Refresh 刷新當(dāng)前頁面

Refresh2 同上,只是可以指定刷新級(jí)別,所指定的刷新級(jí)別的值來自RefreshConstants枚舉表,

該表定義在ExDisp.h中,可以指定的不同值如下:

REFRESH_NORMAL 執(zhí)行簡(jiǎn)單的刷新,不將HTTP pragma: no-cache頭發(fā)送給服務(wù)器

REFRESH_IFEXPIRED 只有在網(wǎng)頁過期后才進(jìn)行簡(jiǎn)單的刷新

REFRESH_CONTINUE 僅作內(nèi)部使用。在MSDN里寫著DO NOT USE! 請(qǐng)勿使用

REFRESH_COMPLETELY 將包含pragma: no-cache頭的請(qǐng)求發(fā)送到服務(wù)器

Stop 相當(dāng)于IE的“停止”按鈕,停止當(dāng)前頁面及其內(nèi)容的載入

屬性 說明

Application 如果該對(duì)象有效,則返回掌管WebBrowser控件的應(yīng)用程序?qū)崿F(xiàn)的自動(dòng)化對(duì)象(IDispatch)。如果在宿主對(duì)象中自動(dòng)化對(duì)象無效,這個(gè)程序?qū)⒎祷豔ebBrowser

控件的自動(dòng)化對(duì)象

Parent 返回WebBrowser控件的父自動(dòng)化對(duì)象,通常是一個(gè)容器,例如是宿主或IE窗口

Container 返回WebBrowser控件容器的自動(dòng)化對(duì)象。通常該值與Parent屬性返回的值相同

Document 為活動(dòng)的文檔返回自動(dòng)化對(duì)象。如果HTML當(dāng)前正被顯示在WebBrowser中,則

Document屬性提供對(duì)DHTML Object Model的訪問途徑

TopLevelContainer 返回一個(gè)Boolean值,表明IE是否是WebBrowser控件頂層容器,是就返回true

Type 返回已被WebBrowser控件加載的對(duì)象的類型。例如:如果加載.doc文件,就會(huì)返

回Microsoft Word Document

Left 返回或設(shè)置WebBrowser控件窗口的內(nèi)部左邊與容器窗口左邊的距離

Top 返回或設(shè)置WebBrowser控件窗口的內(nèi)部左邊與容器窗口頂邊的距離

Width 返回或設(shè)置WebBrowser窗口的寬度,以像素為單位

Height 返回或設(shè)置WebBrowser窗口的高度,以像素為單位

LocationName 返回一個(gè)字符串,該字符串包含著WebBrowser當(dāng)前顯示的資源的名稱,如果資源

是網(wǎng)頁就是網(wǎng)頁的標(biāo)題;如果是文件或文件夾,就是文件或文件夾的名稱

LocationURL 返回WebBrowser當(dāng)前正在顯示的資源的URL

Busy 返回一個(gè)Boolean值,說明WebBrowser當(dāng)前是否正在加載URL,如果返回true

就可以使用stop方法來撤銷正在執(zhí)行的訪問操作

事件 說明

Private Events Description

BeforeNavigate2 導(dǎo)航發(fā)生前激發(fā),刷新時(shí)不激發(fā)

CommandStateChange 當(dāng)命令的激活狀態(tài)改變時(shí)激發(fā)。它表明何時(shí)激活或關(guān)閉Back和Forward

菜單項(xiàng)或按鈕

DocumentComplete 當(dāng)整個(gè)文檔完成是激發(fā),刷新頁面不激發(fā)

DownloadBegin 當(dāng)某項(xiàng)下載操作已經(jīng)開始后激發(fā),刷新也可激發(fā)此事件

DownloadComplete 當(dāng)某項(xiàng)下載操作已經(jīng)完成后激發(fā),刷新也可激發(fā)此事件

NavigateComplete2 導(dǎo)航完成后激發(fā),刷新時(shí)不激發(fā)

NewWindow2 在創(chuàng)建新窗口以前激發(fā)

OnFullScreen 當(dāng)FullScreen屬性改變時(shí)激發(fā)。該事件采用VARIENT_BOOL的一個(gè)輸

入?yún)?shù)來指示IE是全屏顯示方式(VARIENT_TRUE)還是普通顯示方式(VARIENT_FALSE)

OnMenuBar 改變MenuBar的屬性時(shí)激發(fā),標(biāo)示參數(shù)是VARIENT_BOOL類型的。

VARIANT_TRUE是可見,VARIANT_ FALSE是隱藏

OnQuit 無論是用戶關(guān)閉瀏覽器還是開發(fā)者調(diào)用Quit方法,當(dāng)IE退出時(shí)就會(huì)激發(fā)

OnStatusBar 與OnMenuBar調(diào)用方法相同,標(biāo)示狀態(tài)欄是否可見。

OnToolBar <span style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Time" 7="" new="" roman'="">調(diào)用方法同上,標(biāo)示工具欄是否可見。

OnVisible 控制窗口的可見或隱藏,也使用一個(gè)VARIENT_BOOL類型的參數(shù)

StatusTextChange 如果要改變狀態(tài)欄中的文字,這個(gè)事件就會(huì)被激發(fā),但它并不理會(huì)程序是否有狀態(tài)欄

TitleChange Title有效或改變時(shí)激發(fā)

2、              提取網(wǎng)頁源碼

方法1:XMLHTTP對(duì)象

Public Function HtmlStr$(URL$)     '提取網(wǎng)頁源碼函數(shù)

Dim XmlHttp

Set XmlHttp = CreateObject("Microsoft.XMLHTTP")

XmlHttp.Open "GET", URL, False

XmlHttp.Send

If XmlHttp.ReadyState = 4 Then HtmlStr = StrConv(XmlHttp.Responsebody, vbUnicode)

End Function

方法2: WEBBROWSER控件

Public Function WebDaima(WebBrowser, BuFen) '獲取WebBrowser控件中網(wǎng)頁源代碼

Select Case BuFen

Case "Body"    '只獲取與之間的代碼

WebDaima = WebBrowser.Document.body.innerhtml

Case "All"     '獲取整個(gè)網(wǎng)頁源代碼

WebDaima = WebBrowser.Document.documentelement.outerhtml

Case Else

WebDaima = WebBrowser.Document.documentelement.outerhtml

End Select

End Function

Dim strweb As String

strweb=WebDaima(frmIndex.WebBrowser1,"All")   '獲取整個(gè)網(wǎng)頁源代碼

strweb=WebDaima(frmIndex.WebBrowser1,"Body")   '只獲取body中源代碼

3、              防止新窗口里頭打開網(wǎng)頁

代碼1:

Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)

Dim frm As Form1

Set frm = New Form1

frm.Visible = True

Set ppDisp = frm.WebBrowser1.object

End Sub

代碼2:

有這段代碼, 有許多網(wǎng)頁會(huì)出錯(cuò),經(jīng)常提示腳本錯(cuò)誤,可以用silent屬性為True來屏蔽,不過也有些不足?。?!

Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)

Cancel = True

WebBrowser1.Navigate2 WebBrowser1.Document.activeElement.href

End Sub

代碼3:

Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)

On Error Resume Next

Dim frmWB As Form1

Set frmWB = New Form1

frmWB.WebBrowser1.RegisterAsBrowser = True

Set ppDisp = frmWB.WebBrowser1.object

frmWB.Visible = True

frmWB.Top = Form1.Top

frmWB.Left = Form1.Left

frmWB.Width = Form1.Width

frmWB.Height = Form1.Height

End Sub

功能差不多,任選一個(gè)。

4、              新Webbrowser控件打開鏈接

Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)

Set ppDisp = WebPageAd.Object

End Sub

5、              去掉滾動(dòng)條

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

WebBrowser1.Document.Body.Scroll = "no"

End Sub

實(shí)際上上面的效果不咋地,如果懂得HTML知識(shí), 你可以在讀取網(wǎng)頁的時(shí)候,讀取HTML源碼, 查找替換, 再寫入只需在    之間插入代碼:即可。其中x表示水平滾動(dòng)條,將其改為y的話就可以隱藏垂直滾動(dòng)條。

當(dāng)然也有其他方法, 比如修改網(wǎng)頁的尺寸呀? 有的時(shí)候部分元素的居中改為左對(duì)齊也能有效果

將WebBrower放在PictureBox控件中,用PictureBox的邊框擋住WebBrower的邊框。

例如,將WebBrowser1放大點(diǎn),將PictureBox變小點(diǎn)...PictureBox的appearance設(shè)置為0-flat,呵呵,OK~~

6、              禁止鼠標(biāo)右鍵

Private Function M_Dom_oncontextmenu() As Boolean

Webbrowser1.Document.oncontextmenu = False

End Function

'引用Microsoft HTML OBject Library

Dim WithEvents M_Dom As MSHTML.HTMLDocument

Private Function M_Dom_oncontextmenu() As Boolean

M_Dom_oncontextmenu = False

End Function

Private Sub Webbrowser1_DownloadComplete()

Set M_Dom = Webbrowser1.Document

End Sub

7、              如何獲得網(wǎng)頁的內(nèi)容

先給個(gè)例子:

innerHTML:設(shè)置或獲取位于對(duì)象起始和結(jié)束標(biāo)簽內(nèi)的 HTML

測(cè)試一下:

這是一個(gè)層

8、              多框架框架頁面訪問

'下面兩句可以訪問到多框架內(nèi)容

'.Document.ParentWindow.Frames.Length

'.Document.ParentWindow.Frames(1).Document.all.tags("a")

'等待多框架網(wǎng)頁全部加載完畢, 否則出錯(cuò)

While .Busy Or .ReadyState <> 4 Or .Document.ParentWindow.Frames.Length = 0 

DoEvents

Wend

9、 獲得瀏覽器信息

Private Sub Command1_Click()

WebBrowser1.Navigate "http://www.applevb.com"

End Sub

Private Sub Command2_Click()

Dim oWindow

Dim oNav

Set oWindow = WebBrowser1.Document.parentWindow

Set oNav = oWindow.navigator

Debug.Print oNav.userAgent

Set oWindow = Nothing

Set oNav = Nothing

End Sub

10、      彈出Webbrowser消息窗口

Dim oWindow

Set oWindow = WebBrowser1.Document.parentWindow

oWindow.confirm "abcd"

VB調(diào)用webbrowser技巧集2

11、      向Webbrowser中寫入HTML內(nèi)容的幾種方法

向Webbrowser中寫入HTML內(nèi)容的幾種方法

首先在Form_Load中加入

WebBrowser1.Navigate "about:blank"

確保Webbrowser1可用

方法1:

Dim s As String

Dim stream As IStream

s = ""

s = s + ""

s = s + ""

s = s + "

hello world

"

s = s + ""

s = s + "

WebBrowser1.Document.Write s

方法2:

Dim o

Set o = WebBrowser1.Document.selection.createrange

Debug.Print o

If (Not o Is Nothing) Then

o.pasteHTML "哈哈"

Set o = Nothing

End If

方法3:

'插入文本框

Dim o

Set o = WebBrowser1.Document.selection.createrange

o.execCommand "InsertTextArea", False, "xxx"

12、      控制頁面滾動(dòng)

WebBrowser1.Document.parentwindow.scrollby 0, 30

13、      判斷頁面是否可以前進(jìn)后退

Private Sub Command1_Click()

WebBrowser1.GoForward

End Sub

Private Sub Command2_Click()

WebBrowser1.GoBack

End Sub

Private Sub Form_Load()

WebBrowser1.Navigate "http://www.applevb.com"

End Sub

Private Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean)

If (Command = CSC_NAVIGATEBACK) Then

Command2.Enabled = Enable

End If

If (Command = CSC_NAVIGATEFORWARD) Then

Command1.Enabled = Enable

End If

End Sub

14、      如何獲得網(wǎng)頁中被選中部分的HTML

Private Sub Command1_Click()

Dim objSelection

Dim objTxtRange

Set objSelection = WebBrowser1.Document.selection

If Not (objSelection Is Nothing) Then

Set objTxtRange = objSelection.createRange

If Not (objTxtRange Is Nothing) Then

Debug.Print objTxtRange.htmlText

Set objTxtRange = Nothing

End If

Set objSelection = Nothing

End If

End Sub

15、      Navigate的參數(shù)調(diào)用

請(qǐng)問:在WebBrwoser控件里提供的Navigate或者Navigate2方法中提供了傳遞數(shù)據(jù)

的參數(shù),調(diào)用方式為:WebBrowser1.Navigate2(URL,[Flags],

[TargetFrameName],[PostData],[Headers])

其中PostData參數(shù)就是一個(gè)提交參數(shù)字符串,例如"name=aaa&password=123",

但問題是為什么這個(gè)方法并不是有效的,服務(wù)器端不能取得數(shù)據(jù)?

如果這個(gè)方法是有效的話就不需要用一段html代碼模擬這種調(diào)用了。

下面代碼能檢測(cè)出程序post出去的消息

Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)

MsgBox PostData

End Sub

16、      本地文件收藏夾操作

基本上用 specialfolder(6 ) 就可以得到收藏夾的路徑, 然后你可以用dir去循環(huán)讀入每個(gè)目錄,然后dir里面的file, file的名字就是你要的收藏的名字, 路徑可以自己根據(jù)從上面得到的路徑去得到.

如果你不用dir也可以用vb的dir控件.

Private Type SHITEMID

cb As Long

abID As Byte

End Type

Public Type ITEMIDLIST

mkid As SHITEMID

End Type

Public Function SpecialFolder(ByRef CSIDL As Long) As String

locate the favorites folder

Dim R As Long

Dim sPath As String

Dim IDL As ITEMIDLIST

Const NOERROR = 0

Const MAX_LENGTH = 260

R = SHGetSpecialFolderLocation(MDIMain.hwnd, CSIDL, IDL)

If R = NOERROR Then

sPath = Space$(MAX_LENGTH)

R = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal sPath)

If R Then

SpecialFolder = Left$(sPath, InStr(sPath, vbNullChar) - 1)

End If

End If

End Function

17、      讓W(xué)ebbrowser全屏

是的,webbrowser本生是一個(gè)控件, 你要它全屏,就是要它所在的窗體全屏,

可以用setwindowlong取消窗體的 title,

用Call ShowWindow(FindWindow(Shell_traywnd, ), 0) 隱藏tray,就是下邊那個(gè)包含開始那一行.

用Call ShowWindow(FindWindow(Shell_traywnd, ), 9) 恢復(fù). 夠詳細(xì)了吧.

然后在form1.windowstate = 2 就可以了.

18、      選擇網(wǎng)頁上的內(nèi)容

Private Sub Command1_Click()

請(qǐng)先選中一些內(nèi)容

Me.WebBrowser1.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT

MsgBox Clipboard.GetText

End Sub

19、      用IE來下載文件

Private Declare Function DoFileDownload Lib shdocvw.dll (ByVal lpszFile As String) As Long

Private Sub Command1_Click()

Dim sDownload As String

sDownload = StrConv(Text1.Text, vbUnicode)

Call DoFileDownload(sDownload)

End Sub

保存webbrowser中的HTML內(nèi)容

Dim oPF As IPersistFile

Set oPF = WebBrowser1.Document

oPF.Save "TheFileNameHere.htm", False

WebBrowser1.ExecWB怎么用

下面是我測(cè)試的參數(shù)

WB.ExecWB(4,1)

4,1 保存網(wǎng)頁

4,2 保存網(wǎng)頁(可以重新命名)

6,1 直接打印

6,2 直接打印

7,1 打印預(yù)覽

7,2 打印預(yù)覽

8,1 選擇參數(shù)

8,2 選擇參數(shù)

10,1 查看頁面屬性

10,2 查看頁面屬性

17,1 全選

17,2 全選

22,1 重新載入當(dāng)前頁

22,2 重新載入當(dāng)前頁

20、      Webbrowser確定窗口對(duì)話框

某些網(wǎng)頁出于各種考慮會(huì)彈出對(duì)話框要求信息確認(rèn),往往會(huì)中斷我們的webbrowser過程,可以使用如下方法:

1.加入Microsoft Html Object

2.加入語句

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)

Dim obj As HTMLDocument

Set obj = pDisp.Document

obj.parentWindow.execScript "function showModalDialog(){return;}" '對(duì)showModalDialog引起的對(duì)話框進(jìn)行確定

End Sub

而confirm引發(fā)的對(duì)話確定框可用confirm替換showModalDialog即可,Alert等同理~

WebBrowser取得網(wǎng)頁源碼Private Sub Command1_Click()

WebBrowser1.Navigate "http://www.sdqx.gov.cn/sdcity.php"

End Sub

Private Sub WebBrowser1_DownloadComplete()

'頁面下載完畢

Dim doc, objhtml

Set doc = WebBrowser1.Document

Set objhtml = doc.body.createtextrange()

If Not IsNull(objhtml) Then

Text1.Text = objhtml.htmltext

End If

End Sub

21、      禁止WebBrowser控件中網(wǎng)頁彈窗

Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)

Cancel = True

End Sub

全部調(diào)試信息被禁止

22、      取得源碼調(diào)試正常運(yùn)行錯(cuò)誤

我用WebBrowser取得網(wǎng)頁源碼,直接運(yùn)行正常,但在編譯后出錯(cuò)

提示:實(shí)時(shí)錯(cuò)誤“91” Object 變量或 with 塊變量沒有設(shè)置

可能是沒有下載完所致,

Private Sub WebBrowser1_DownloadComplete()

if webbrowser.busy=false then

Dim doc, objhtml

Set doc = WebBrowser1.Document

Set objhtml = doc.body.createtextrange()

If Not IsNull(objhtml) Then

Text1.Text = objhtml.htmltext

End If

end if

End Sub

23、      頁面元素操作

1.根據(jù)標(biāo)記名(tagname)的和元素名name來找到元素,

2.給元素賦值或是執(zhí)行相關(guān)的事件.

例0: 查看網(wǎng)頁元素

dim a

for each a in wbr.document.all

text1.text=text1.text & typename(a) & vbcrlf

next

例1: 給username文本框內(nèi)填充內(nèi)容:

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

Dim doc

Dim tg

Set doc = WebBrowser1.Document

For i = 0 To doc.All.length - 1

If (LCase(doc.All(i).tagname)) = "input" Then

if (LCase(doc.All(i).name)) = "username" then

Set tg = doc.All(i)

tg.value=text1.text

end if

End If

Next i

End Sub 

'文本框代碼:

WebBrowser1.Document.getelementsbytagname("input")("WordInput").Value = "要在文本框輸入的文字"

'此處WordInput為文本框的ID或Name屬性值

例2: 找到提交按鈕并點(diǎn)擊 

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

Dim doc

Dim tg

Set doc = WebBrowser1.Document

For i = 0 To doc.All.length - 1

If (LCase(doc.All(i).tagname)) = "input" Then

if (LCase(doc.All(i).type)) = "submit" then

Set tg = doc.All(i)

tg.click

end if

End If

Next i

End Sub

上面在MSDN2找到個(gè)答案還沒試.IFRAME內(nèi)的網(wǎng)頁的方法不同,可能要用到窗口.試驗(yàn)后再說吧.

例3: 難度的

INPUT onclick="this.disabled=true;this.value='登錄中……請(qǐng)稍候……';document.form1.submit();" type=submit value=" 登 錄 "

For i = 0 To vDoc.All.length - 1

用<span lang="aN-US> i <span style=" font-family:="" 宋體;="" mso-ascii-font-family:="" 'times="" new="" roman';="" mso-hansi-font-family:="" roman'="">來判斷submit 為第幾個(gè),再點(diǎn)擊它

例4: 模擬鼠標(biāo)點(diǎn)擊來點(diǎn)擊按鈕

Private Declare Function GetMessageExtraInfo Lib "user32" () As Long

Private Declare Sub mouse_event Lib "user32" _

(ByVal dwFlags As Long, _

ByVal dx As Long, _

ByVal dy As Long, _

ByVal cButtons As Long, _

ByVal dwExtraInfo As Long)

Private Const MOUSEEVENTF_LEFTDOWN As Long = &H2

Private Const MOUSEEVENTF_LEFTUP As Long = &H4

sub clk()

'至于按鈕的坐標(biāo)值就是x,y,這個(gè)你得自己找了,因?yàn)榇翱诜旁诓煌奈恢茫鴺?biāo)是不一樣的,你可以用getcursorpos取得,

'不過,就算你點(diǎn)了,又有什么用呢?點(diǎn)完了還是要驗(yàn)證碼的!

mouse_event MOUSEEVENTF_LEFTDOWN, x, y, 0, GetMessageExtraInfo

mouse_event MOUSEEVENTF_LEFTUP, x, y, 0, GetMessageExtraInfo

end sub

例5: 根據(jù)ID直接CLICK

'查詢

'此按鈕的點(diǎn)擊方法

WebBrowser1.Document.getelementsbytagname("BUTTON")("WordSearchBtn").Click

例6: 給列表單選項(xiàng)賦值

Public Function SelectXq(WebBrowser, SelectName, SelectValue)

'參數(shù)

'WebBrowser:WebBrowser控件名稱

'SelectName:網(wǎng)頁中 列表/菜單 表單名稱或ID值

'SelectValue:選中值

WebBrowser.doc.All.Item(SelectName).Value = SelectValue

End Function

函數(shù)調(diào)用方法:

WebBrowser中網(wǎng)頁Select表單代碼如下:

我就讀的第一所學(xué)校的名稱?我最喜歡的休閑運(yùn)動(dòng)是什么?我最喜歡的運(yùn)動(dòng)員是誰?我最喜歡的物品的名稱?我最喜歡的歌曲?我最喜歡的食物?我最愛的人的名字?我最愛的電影?我媽媽的生日?

'讓列表表單選中選項(xiàng)值為 我最愛的人的名字 的選項(xiàng)

Call SelectXq(Form1.WebBrowser1, "ctl00_ContentPlaceHolder1_DropDownList1", "我最愛的人的名字?")

例7: 網(wǎng)頁自動(dòng)填寫表單注冊(cè)

請(qǐng)?zhí)顚懴旅姹韱巫?cè)(*項(xiàng)為必添項(xiàng))  

*姓名  

*男  

*女  

*昵稱

*興趣愛好    計(jì)算機(jī)    游戲    逛街   

電子郵件  

*密碼  

填寫表單并提交操作代碼

Private Sub Form_Load()

WebBrowser1.Navigate2 App.Path & "\test.htm"

End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

Dim vDoc, vTag

Dim i As Integer

Set vDoc = WebBrowser1.Document

List1.Clear

For i = 0 To vDoc.All.length - 1

If UCase(vDoc.All(i).tagName) = "INPUT" Or UCase(vDoc.All(i).tagName) = "SELECT" Then

Set vTag = vDoc.All(i)

If vTag.Type = "text" Or vTag.Type = "password" Or vTag.Type = "radio" Or vTag.Name = "aihao" Then

List1.AddItem vTag.Name

Select Case vTag.Name

Case "Name"

vTag.Value = "IMGod"

Case "R2"

vTag.Checked = True

Case "NickName"

vTag.Value = "IMGod"

Case "aihao"

vTag.Value = "逛街"

Case "Password"

vTag.Value = "IMGodpass"

Case "EMail"

vTag.Value = "IMGod@paradise.com"

End Select

ElseIf vTag.Type = "submit" Then

vTag.Click

End If

End If

Next i

End Sub

24、      網(wǎng)頁按鈕的終極控制'一般來說,最簡(jiǎn)單最直接的操作網(wǎng)頁表單提交方法就是WebBrowser1.Document.All("Namd").Value="xxxx"        '填表WebBrowser1.Document.All("DengLu").Click        '按鈕點(diǎn)擊'不過此方法需要知道該表單的各個(gè)元素的ID.一般來說,普通的網(wǎng)頁都能直接從網(wǎng)頁源文件中找到這些東西.

'假如整個(gè)表單都沒能在源文件中找到的,那可以用    Text1 = WebBrowser1.Document.getElementById("BiaoID").innerHTML        '"BiaoID"為表單所在表格的ID'這樣Text1顯示出來的就是你所要的表單的代碼了.'不過即使是得到隱藏的代碼了,還是有可能碰到?jīng)]ID沒NAME沒類型的按鈕,這怎么辦呢?'不怕,通用方法來了.'沒ID我們就給它個(gè)ID嘛.'在DocumentComplete里網(wǎng)頁完全打開后'處理網(wǎng)頁源碼,給你要點(diǎn)擊的按鈕起個(gè)名(加上ID)'例如:    Text1 = 確定'將其變?yōu)?    Text1 = 確定

'然后用    WebBrowser1.Document.body.innerHTML = Text1.Text        '將處理完的網(wǎng)頁裝入WebBrowser1

'然后就可以用回一開始說的最簡(jiǎn)單的方法來點(diǎn)擊了    WebBrowser1.Document.All("abc").Click        '按鈕點(diǎn)擊'怎么樣,是不是很爽丫,這樣就不用去思考還有沒什么條件可以來定位這個(gè)按鈕然后再點(diǎn)擊了.'當(dāng)然,還有中方法是:

Dim OButton    OButton = WebB.Document.getElementsByTagName("BUTTON")    OButton.Click       '這樣就點(diǎn)擊了前邊例子中的那個(gè)按鈕了.'這方法通用性也是很強(qiáng),自己研磨一下你就能運(yùn)用自如了.

22、執(zhí)行網(wǎng)頁中的腳本

Function js(scripts)

On Error GoTo 1

If scripts = "" Then Exit Function

Set document = WebBrowser1.document

document.parentWindow.execScript scripts, "javascript"

Exit Function

1

MsgBox "運(yùn)行js腳本時(shí)發(fā)生錯(cuò)誤!"

End Function

javascript:

function findNode(findString,obj){

var findId=true;

var findStrings=findString.split(';');

for(var i=0;i<obj.childnodes.length;i++){< p="">

findId=true;

if(obj.childNodes.length>0){

var objs=findNode(findString,obj.childNodes[i]);

if(objs!=null)return objs;

}

for(var k=0;k<findstrings.length;k++){< p="">

var temp=findStrings[k].split('=');

eval("var temp2=obj.childNodes[i]."+temp[0])

if(temp2!=temp[1]){

findId=false;

break;

}

}

if(findId){

return obj.childNodes[i];

}

}

return null;

}

例:

js "findNode('nodeName=INPUT;value=資源發(fā)布',document.documentElement).click()"

注:如你打不的不是你的網(wǎng)站頁面,可以用VB的JS函數(shù)先執(zhí)行一下我寫的這個(gè)javascript:findNode函數(shù)如:js "function findNode(findString,obj){...."

上面findNode函數(shù)要去掉換行符,這里是為了直觀才加上的換行符

例:

js "findNode( 'nodeName=IMG;src=top.png;',document.documentElement).click() "

例: xxxx

js "findNode( 'nodeName=IMG;src=top.png;#text=xxxx',document.documentElement).click() " 

我用alert(document.getElementById( "tdGetSeed ").innerHTML); 看了是:

所以用:

Set document = WebBrowser1.document 

document.getElementById("btnGetSeed").click()

是可以的

現(xiàn)在你不用上面那么多代碼了,只要一條就行,那就是:

document.getElementById("btnGetSeed").click()

Set document = WebBrowser1.document

document.parentWindow.execScript "getSeedClick.call(document.getElementById('frmgetseed'))", "javascript "

23、提取字符串或網(wǎng)頁源代碼中指定的資源(可利用這一函數(shù)做文章采集器)

1.函數(shù)代碼:

Public Function FindStrMulti$(Strall$, FirstStr$, EndStr$, SplitStr$) '提取字符串或網(wǎng)頁源代碼中所有指定代碼

'參數(shù)

'總文本,起始字符串,終止字符串,分隔符

Dim i&, j&

j = 1

Do

i = InStr(j, Strall, FirstStr)

If i = 0 Then

Exit Do

End If

i = i + Len(FirstStr)

j = InStr(i, Strall, EndStr)

If j > 0 Then

FindStrMulti = IIf(Len(FindStrMulti) > 0, FindStrMulti & SplitStr, "") & Mid(Strall, i, j - i)

Else

Exit Do

End If

Loop

End Function

2.函數(shù)調(diào)用

截取字符串中的內(nèi)容

Dim str1 As String

Dim str2 As String

str1 = "

要截取的內(nèi)容"

str2 = FindStrMulti(str1, "", "", "")

MsgBox str2

'此時(shí)str2的值就為 要截取的內(nèi)容

文章列表標(biāo)題鏈接采集實(shí)例

網(wǎng)頁代碼

博客首頁 > 文章列表

比目魚博客文章列表

[文壇張望] 誰會(huì)拿下2010年的諾貝爾文學(xué)獎(jiǎng)? (2010-10-01 22:38)

[視覺訓(xùn)練] 書法練習(xí)二幅 (2010-09-29 01:51)

[文壇張望] 駱以軍對(duì)話董啟章 (2010-09-21 17:15)

[視覺訓(xùn)練] 夜臨古畫(六) (2010-09-17 01:46)

[我也讀書] Jennifer Egan 的《A Visit From the Goon Squad》 (2010-09-07 02:30)

[我也讀書] 當(dāng)我們談?wù)撾娮訒臅r(shí)候我們?cè)谡務(wù)撾娮訒喿x器 (2010-08-27 16:51)

[IT互聯(lián)網(wǎng)] “讀寫人”和“比目魚”網(wǎng)站的手機(jī)版 (2010-08-24 02:04)

1 2 3 4 5 6 7 8 >>

從以上代碼中獲取

與之間所有文章的標(biāo)題鏈接,實(shí)現(xiàn)方法如下:

Dim strWeb As String

Dim i As Integer

Dim strListArea As String

Dim strLink '定義存放列表文章鏈接的數(shù)組

strWeb = WebDaima(Me.WebBrowser1, "Body")  '獲取網(wǎng)頁body代碼(具體查看WebDaima函數(shù))

strListArea = FindStrMulti(strWeb, "

比目魚博客文章列表", "", "") '截列表區(qū)域代碼

'獲取列表區(qū)域中文章鏈接,并存在在數(shù)組strLink中

strLink = Split(FindStrMulti(strListArea, "href=" & Chr(34), Chr(34) & ">", vbCrLf), vbCrLf)

For i = 0 To UBound(strLink) '循環(huán)輸出鏈接

Text1.Text = Text1.Text & strLink(i) & vbCrLf

Next i

24、中文漢字轉(zhuǎn)化為URL編碼

函數(shù)代碼:

'以下兩個(gè)函數(shù)用于將文字轉(zhuǎn)化為UTF8或GBK編碼:(如在百度中搜索內(nèi)容時(shí),百度先將搜索詞轉(zhuǎn)化為UTF8的編碼,再傳送給服務(wù)器)

'調(diào)用:

'KeyWordUtf = UTF8EncodeURI(KeyWord) 或 KeyWordUtf = GBKEncodeURI(KeyWord)

Public Function UTF8EncodeURI(szInput)

Dim wch, uch, szRet

Dim X

Dim nAsc, nAsc2, nAsc3

If szInput = "" Then

UTF8EncodeURI = szInput

Exit Function

End If

For X = 1 To Len(szInput)

wch = Mid(szInput, X, 1)

nAsc = AscW(wch)

If nAsc < 0 Then nAsc = nAsc + 65536

If (nAsc And &HFF80) = 0 Then

szRet = szRet & wch

Else

If (nAsc And &HF000) = 0 Then

uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3FOr &H80)

szRet = szRet & uch

Else

uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _

Hex((nAsc \ 2 ^ 6) And &H3FOr &H80) & "%" & _

Hex(nAsc And &H3FOr &H80)

szRet = szRet & uch

End If

End If

Next

UTF8EncodeURI = szRet

End Function

Public Function GBKEncodeURI(szInput)

Dim i As Long

Dim X() As Byte

Dim szRet As String

szRet = ""

X = StrConv(szInput, vbFromUnicode)

For i = LBound(X) To UBound(X)

szRet = szRet & "%" & Hex(X(i))

Next

GBKEncodeURI = szRet

End Function

函數(shù)調(diào)用:

MsgBox UTF8EncodeURI("中文漢字")

MsgBox GBKEncodeURI("中文漢字")

25、獲取網(wǎng)頁中的驗(yàn)證碼

函數(shù)代碼:

Public Function GetImg(WebBrowser, Img, sxz)

'參數(shù)

'WebBrowser:等獲取驗(yàn)證碼網(wǎng)頁所在的WebBrowser控件

'Img:顯示驗(yàn)證碼的Image控件

'sxz:網(wǎng)頁中驗(yàn)證碼相應(yīng)屬性的屬性值

Dim CtrlRange, x

For Each x In WebBrowser.Document.All

If UCase(x.tagName) = "IMG" Then

'x.src為驗(yàn)證碼圖片的屬性,也可是其他屬性 如 x.onload等

If InStr(x.src, sxz) > 0 Then

Set CtrlRange = WebBrowser.Document.body.createControlRange()

CtrlRange.Add (x)

CtrlRange.execCommand ("Copy")

Debug.Print "Copy"

Img.Picture = Clipboard.GetData

End If

End If

Next

End Function

函數(shù)調(diào)用:

'如獲取網(wǎng)頁http://www.pceggs.com/login.aspx中的驗(yàn)證碼圖片代碼如下:

'

'獲取驗(yàn)證碼函數(shù)調(diào)用如下:

Call GetImg(Form1.WebBrowser1, Form1.Image1, "VerifyCode_Login.aspx")

26、WebBrowser控件中網(wǎng)頁按鈕的點(diǎn)擊

27、其它

窗體透明控件不透明

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _

ByVal hwnd As Long, _

ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _

ByVal hwnd As Long, _

ByVal nIndex As Long, _

ByVal dwNewLong As Long) As Long

Private Declare Function SetLayeredWindowAttributes Lib "user32" ( _

ByVal hwnd As Long, _

ByVal crKey As Long, _

ByVal bAlpha As Byte, _

ByVal dwFlags As Long) As Long

Private Const GWL_STYLE = (-16)

Private Const GWL_EXSTYLE = (-20)

Private Const WS_EX_LAYERED = &H80000

Private Const LWA_COLORKEY = &H1

Private Const LWA_ALPHA = &H2

Private Sub Form_Load()

Me.BackColor = vbCyan

SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED

SetLayeredWindowAttributes Me.hwnd, vbCyan, 0&, LWA_COLORKEY

End Sub

圖標(biāo)提取

Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long

Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

Private Sub Command1_Click()

Dim a As Long

a = ExtractIcon(App.hInstance, "D:\Program Files\QQ2007\QQ.exe", 0)

a = DrawIcon(Picture1.hdc, 0, 0, a)

End Sub

這個(gè)可以顯示在Picture1

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
IE webbrowser技巧集
關(guān)于webbrower控件的使用
VB中如何保存Webbrowser中的整個(gè)頁面到一幅圖片
如何把網(wǎng)頁上的圖片導(dǎo)入VB圖片框中并顯示出來
自動(dòng)上網(wǎng)抓數(shù)據(jù)的機(jī)器人
VB實(shí)用代碼,收藏??!
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服