WebBrowser控件使用详解Word文档下载推荐.docx
《WebBrowser控件使用详解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《WebBrowser控件使用详解Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
⏹TopLevelContainer返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true
⏹Type返回已被WebBrowser控件加载的对象的类型。
例如:
如果加载.doc文件,就会返回MicrosoftWordDocument
⏹Left返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离
⏹Top返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离
⏹Width返回或设置WebBrowser窗口的宽度,以像素为单位
⏹Height返回或设置WebBrowser窗口的高度,以像素为单位
⏹LocationName返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源是网页就是网页的标题;
如果是文件或文件夹,就是文件或文件夹的名称
⏹LocationURL返回WebBrowser当前正在显示的资源的URL
⏹Busy返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true就可以使用stop方法来撤销正在执行的访问操作
事件
⏹BeforeNavigate2导航发生前激发,刷新时不激发
⏹CommandStateChange当命令的激活状态改变时激发。
它表明何时激活或关闭Back和Forward菜单项或按钮
⏹DocumentComplete当整个文档完成是激发,刷新页面不激发
⏹DownloadBegin当某项下载操作已经开始后激发,刷新也可激发此事件
⏹DownloadComplete当某项下载操作已经完成后激发,刷新也可激发此事件
⏹NavigateComplete2导航完成后激发,刷新时不激发
⏹NewWindow2在创建新窗口以前激发
⏹OnFullScreen当FullScreen属性改变时激发。
该事件采用VARIENT_BOOL的一个输
⏹入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)
⏹OnMenuBar改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。
⏹VARIANT_TRUE是可见,VARIANT_FALSE是隐藏
⏹OnQuit无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发
⏹OnStatusBar与OnMenuBar调用方法相同,标示状态栏是否可见。
⏹OnToolBar调用方法同上,标示工具栏是否可见。
⏹OnVisible控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数
⏹StatusTextChange如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏
⏹TitleChangeTitle有效或改变时激发
使用技巧
1.禁止右键
看到很多关于WebBrowser控件禁止右键的提问,回复的方法很多,其中有提到使用微软提供的Webbrowser扩展COM服务器对象(WBCustomizer.dll),但是该方法在我们想使用Webbrowser编辑网页(Webbrowser1.Document.execCommand"
editMode"
)的时候有很多弊端,比如不能显示选中的文本等。
另有些方法也就不用一一列举了。
这儿我想提到的是关于MSHTML.HTMLDocument
引用MicrosoftHTMLOBjectLibrary
Rem#窗体代码#
DimWithEventsM_DomAsMSHTML.HTMLDocument
PrivateFunctionM_Dom_oncontextmenu()AsBoolean
M_Dom_oncontextmenu=False
EndFunction
PrivateSubWebbrowser1_DownloadComplete()
SetM_Dom=Webbrowser1.Document
EndSub
Rem好了,右键菜单没有了
=====================================================================
2.控件调用和获得收藏夹里面
基本上用specialfolder(6)就可以得到收藏夹的路径,然后你可以用dir去循环读入每个目录,然后dir里面的file,file的名字就是你要的收藏的名字,路径可以自己根据从上面得到的路径去得到。
如果你不用dir也可以用vb的dir控件.
PrivateTypeSHITEMID
cbAsLong
abIDAsByte
EndType
PublicTypeITEMIDLIST
mkidAsSHITEMID
PublicFunctionSpecialFolder(ByRefCSIDLAsLong)AsString
'
locatethefavoritesfolder
DimRAsLong
DimsPathAsString
DimIDLAsITEMIDLIST
ConstNOERROR=0
ConstMAX_LENGTH=260
R=SHGetSpecialFolderLocation(MDIMain.hwnd,CSIDL,IDL)
IfR=NOERRORThen
sPath=Space$(MAX_LENGTH)
R=SHGetPathFromIDList(ByValIDL.mkid.cb,ByValsPath)
IfRThen
SpecialFolder=Left$(sPath,InStr(sPath,vbNullChar)-1)
EndIf
3.全屏
是的,webbrowser本生是一个控件,你要它全屏,就是要它所在的窗体全屏,可以用setwindowlong取消窗体的title,用CallShowWindow(FindWindow("
Shell_traywnd"
"
"
),0)隐藏tray,就是下边那个包含开始那一行.用CallShowWindow(FindWindow("
),9)恢复.够详细了吧.
然后在form1.windowstate=2就可以了.
4.选择网页上的内容。
PrivateSubCommand1_Click()
'
请先选中一些内容
Me.WebBrowser1.ExecWBOLECMDID_COPY,OLECMDEXECOPT_DODEFAULT
MsgBoxClipboard.GetText
5.用IE来下载文件
PrivateDeclareFunctionDoFileDownloadLib"
shdocvw.dll"
(ByVallpszFileAsString)AsLong
DimsDownloadAsString
sDownload=StrConv(Text1.Text,vbUnicode)
CallDoFileDownload(sDownload)
PrivateSubForm_Load()
Text1.Text="
http:
//www.chat.ru/~softdaily/fo-ag162.zip"
Form1.Caption="
Audiograbber1.62Full"
Text2.Text="
6.我要动态加载和删除WebBrowser控件应该怎么做?
Form1.Controls.Add"
shell.explorer.2"
NewWeb"
Form1
WithForm1!
NewWeb
.Visible=True
.Width=10000
.Height=10000
.Left=0
.Top=0
.Navigate2"
EndWith
PrivateSubCommand2_Click()
Controls.RemoveForm1!
newweb
Form1.Controls.Add"
newweb(newweb.Count),Form1
newweb(newweb.Count)
.Width=1000
.Height=1000
.Left=newweb(newweb.Count-1).Left+newweb(newweb.Count-1).Width
.Navigate2"
为什么他说我
这一行错误13类型不匹配?
ps:
我在form中已经有了一个newweb(0)控件
先为一个WebBrowser
DimiAsInteger
PrivateSubAddWeb_Click()
Fori=1To10
LoadNewWeb(i)
NewWeb(i).Top=i*100
NewWeb(i).Left=i*100
NewWeb(i).Visible=True
Nexti
PrivateSubDelWeb_Click()
UnloadNewWeb(i)
7.一个把页面保存为MHT(即MHTML)文件
将pcwak(书剑狂生[MSMVP])大侠提供的资料贴出来,以供大家参考:
我终于找到一个把页面保存为MHT(即MHTML)文件的方法了!
首先,在工程中必须要引用一个库:
LibraryCDO
D:
\WINNT\System32\cdosys.dll
MicrosoftCDOforWindows2000Library
其次,需要Stream对应的接口的支持,如果你一时找不到就使用支持这个的较新的ADO就行了,如
LibraryADODB
\ProgramFiles\CommonFiles\system\ado\msado15.dll
MicrosoftActiveXDataObjects2.5Library
代码如下,十分简单(同时由于流的特点,显示在实际应用中没必要象本例中那样把文件保存到磁盘上就可直接转换为字符串或字节数组什么的处理的。
另,对于MicrosoftCDOforWindows2000Library这个库,在WIN98中要怎么使用还没试过,感兴趣的朋友可以试试并跟帖,以丰富完善其内容:
)
ReferencetoMicrosoftActiveXDataObjects2.5Library
ReferencetoMicrosoftCDOforWindows2000Library
DimiMsgAsNewCDO.Message
DimiConfAsNewCDO.Configuration
DimobjStreamAsADODB.Stream
WithiMsg
.CreateMHTMLBody"
_
domain\username"
_
password"
SetobjStream=.GetStream
CallobjStream.SaveToFile("
f:
\test.mht"
adSaveCreateOverWrite)
EndWith
2、
首先加入对ADODB和CDO(MicrosoftCDOforWindows2000Library,对应文件名为CDOSYS.dll)的引用
DimmessageAsNewCDO.message
DimOutstreamAsADODB.Stream
OnErrorGoTomyerr1
Callmessage.CreateMHTMLBody("
CDO.CdoMHTMLFlags.cdoSuppressNone,"
SetOutstream=message.GetStream
CallOutstream.SaveToFile("
c:
ADODB.SaveOptionsEnum.adSaveCreateOverWrite)
MsgBox"
完成"
ExitSub
myerr1:
Setmessage=Nothing
SetOutstream=Nothing
8.在WebBrowser控件调用收藏夹和在收藏夹里添加收藏
OptionExplicit
DimObjSUHAsNewShellUIHelper
ObjSUH.AddFavorite"
CSDN"
SetObjSUH=Nothing
9.如何使网页不出现滚动条:
PrivateSubmnuScroll1_Click()
注意:
必须在网页完全显示之后才可以运行
WebBrowser1.Document.body.Scroll="
no"
不显示滚动条的办法
PrivateSubmnuScroll2_Click()
Auto"
显示滚动条的办法
10.如何获得网页中被选中部分的HTML:
DimobjSelection
DimobjTxtRange
SetobjSelection=WebBrowser1.Document.selection
IfNot(objSelectionIsNothing)Then
SetobjTxtRange=objSelection.createRange
IfNot(objTxtRangeIsNothing)Then
Debug.PrintobjTxtRange.htmlText
SetobjTxtRange=Nothing
SetobjSelection=Nothing
WebBrowser1.Navigate"
11.页面滚动:
WebBrowser1.Document.parentwindow.scrollby0,30
点击Command2就可以使当前页面向下滚动30像素
12.判断页面是否可以前进后退
WebBrowser1.GoForward
WebBrowser1.GoBack
PrivateSubWebBrowser1_CommandStateChange(ByValCommandAsLong,ByValEnableAsBoolean)
If(Command=CSC_NAVIGATEBACK)Then
Command2.Enabled=Enable
If(Command=CSC_NAVIGATEFORWARD)Then
Command1.Enabled=Enable
上面的command1是前进按钮,command2是后退按钮
13.获得浏览器信息:
PrivateSubCommand1_Click()
WebBrowser1.Navigate"
EndSub
PrivateSubCommand2_Click()
DimoWindow
DimoNav
SetoWindow=WebBrowser1.Document.parentWindow
SetoNav=oWindow.navigator
Debug.PrintoNav.userAgent
SetoWindow=Nothing
SetoNav=Nothing
点击Command1浏览网页,点击Command2在立即窗口中输出浏览器信息。
14.弹出Webbrowser消息窗口
oWindow.confirm"
abcd"
15.向Webbrowser中写入HTML内容的几种方法
首先在Form_Load中加入
about:
blank"
确保Webbrowser1可用
方法1:
DimsAsString
DimstreamAsIStre