Webbrowser控件史上最强技巧全集解析_第1页
Webbrowser控件史上最强技巧全集解析_第2页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Webbrowser控件史上最强技巧全集VB调用webbrowser技巧集1、获得浏览器信息:PrivateSubCommand1_Click()WebBrowser1.Navigate""EndSubPrivateSubCommand2_Click()DimoWindowDimoNavSetoWindow=WebBrowser1.Document.parentWindowSetoNav=oWindow.navigatorDebug.PrintoNav.userAgentSetoWindow=NothingSetoNav=NothingEndSub点击Command1浏览网

2、页,点击Command2在立即窗口中输出浏览器信息。2、弹出Webbrowser消息窗口DimoWindowSetoWindow=WebBrowser1.Document.parentWindowoWindow.confirm"abcd"VB调用webbrowser技巧集2向Webbrowser中写入HTML内容的几种方法首先在Form_Load中加入WebBrowser1.Navigate"about:blank"确保Webbrowser1可用方法1:DimsAsStringDimstreamAsIStreams=HHs=s+""s

3、=s+""s=s+HhelloworldWebBrowser1.Document.Writes方法2:DimoSeto=WebBrowserl.Document.selection.createrangeDebug.PrintoIf(NotoIsNothing)Theno.pasteHTML"哈哈"Seto=NothingEndIf方法3:'插入文本框DimoSeto=WebBrowser1.Document.selection.createrangeo.execCommand"InsertTextArea",False,&q

4、uot;xxx"vb调用Webbrowser技巧集31、页面滚动:PrivateSubCommand2_Click()WebBrowser1.Document.parentwindow.scrollby0,30EndSubPrivateSubForm_Load()WebBrowser1.Navigate""EndSub点击Command2就可以使当前页面向下滚动30像素2、判断页面是否可以前进后退PrivateSubCommand1_Click()WebBrowser1.GoForwardEndSubPrivateSubCommand2_Click()WebBro

5、wser1.GoBackEndSubPrivateSubForm_Load()WebBrowser1.Navigate""EndSubPrivateSubWebBrowser1_CommandStateChange(ByValCommandAsLong,ByValEnableAsBoolean)If(Command=CSC_NAVIGATEBACK)ThenCommand2.Enabled=EnableEndIfIf(Command=CSC_NAVIGATEFORWARD)ThenCommand1.Enabled=EnableEndIfEndSubVB调用webbrowse

6、r技巧集41、如何使网页不出现滚动条:PrivateSubmnuScroll1_Click()#注意:必须在网页完全显示之后才可以运行WebBrowser1.Document.body.Scroll="no"#不显示滚动条的办法EndSubPrivateSubmnuScroll2_Click()#注意:必须在网页完全显示之后才可以运行WebBrowser1.Document.body.Scroll="Auto"#显示滚动条的办法EndSub2、如何获得网页中被选中部分的HTML:PrivateSubCommand1_Click()DimobjSelect

7、ionDimobjTxtRangeSetobjSelection=WebBrowser1.Document.selectionIfNot(objSelectionIsNothing)ThenSetobjTxtRange=objSelection.createRangeIfNot(objTxtRangeIsNothing)ThenDebug.PrintobjTxtRange.htmlTextSetobjTxtRange=NothingEndIfSetobjSelection=NothingEndIfEndSubPrivateSubForm_Load()WebBrowser1.Navigate&q

8、uot;"EndSubNavigate方法的语法格式为:WebBrowser控件名.NavigateURLFlags,TargetFrameName,PostData,HeadersWebBrowser控件支持的主要方法有:GoBack回退到上一屏。GoForward进入到下一屏。GoHome回家。即回到主页。Stop停止导航。Refresh刷新。Navigate导航。WebBrowser控件所响应的事件:BeforeNavigate事件在开始导航前发生。一般在此获取完整的URL字符串。WebBrowser控件最主要的参数:URL获得导航用的标准URL字符串。例如:它能将”www.M

9、icroSoft.Com”自动翻译为”http:/www.MicroSoft.Com”.URL是UniformResourceLocator的缩写,是在Internet的WWW服务程序上用于指定信息位置的表示方法。使用WebBrowser的Navigator或者Navigator2方法打开一个asp文档并且传递参数进去,但是asp文档无法获得参数,请教是什么原因?vb源码:PrivateSubcmdSubmit_Click()DimstrURLAsString,strFormDataAsStringDimstrDataAsStringstrURL=Trim$(txtURL.Text)strFo

10、rmData="name="&Trim$(txtName.Text)&"&password="&Trim$(txtPassword.Text)CallWBTest.Navigate2(strURL,64,"_blank",strFormData,"hello")EndSubasp源码:< %Language=VBScript%>< %dimstrNamedimstrPasswordstrName=Trim(Request.Form("name")

11、strPassword=Trim(Request.Form("password")Response.Write(strName)Response.Write(strPassword)ifstrName="KingZhang"andstrPassword="123456"thenResponse.Write("登陆成功")elseResponse.Write("非法登陆用户!")endif%>*OptionExplicitPrivateSubCommand1_Click()DimszValu

12、eAsStringWebBrowser1.Document.body.innerHTML="method=postaction=http:/地址/xxx.php>WebBrowserl.Document.Forms("post").submitEndSubPrivateSubForm_Load()WebBrowser1.Navigate2"about:blank"EndSubTop请问:在WebBrwoser控件里提供的Navigate或者Navigate2方法中提供了传递数据的参数,调用方式为:WebBrowser1.Navigate2

13、(URL,Flags,TargetFrameName,PostData,Headers)其中PostData参数就是一个提交参数字符串,例如"name=aaa&password=123",但问题是为什么这个方法并不是有效的,服务器端不能取得数据?如果这个方法是有效的话就不需要用一段htmI代码模拟这种调用了。下面代码能检测出程序post出去的消息PrivateSubWebBrowser1_BeforeNavigate2(ByValpDispAsObject,URLAsVariant,FlagsAsVariant,TargetFrameNameAsVariant,Po

14、stDataAsVariant,HeadersAsVariant,CancelAsBoolean)MsgBoxPostDataEndSubWebBrowser的8个方法和13个属性WebBrowser的8个方法和13个属性,以及它们的功能:方法说明GoBack相当于IE的“后退”按钮,使你在当前历史列表中后退一项GoForward相当于IE的“前进”按钮,使你在当前历史列表中前进一项GoHome相当于IE的“主页”按钮,连接用户默认的主页GoSearch相当于IE的“搜索”按钮,连接用户默认的搜索页面Navigate连接到指定的URLRefresh刷新当前页面Refresh2同上,只是可以指定

15、刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,该表定义在ExDisp.h中,可以指定的不同值如下:REFRESH_NORMAL执行简单的刷新,不将HTTPpragma:no-cache头发送给服务器REFRESH_IFEXPIRED只有在网页过期后才进行简单的刷新REFRESH_CONTINUE仅作内部使用。在MSDN里写着DONOTUSE!请勿使用REFRESH_COMPLETELY将包含pragma:no-cache头的请求发送到服务器Stop相当于IE的“停止”按钮,停止当前页面及其内容的载入属性说明Application如果该对象有效,则返回掌管WebBro

16、wser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser控件的自动化对象Parent返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口Container返回WebBrowser控件容器的自动化对象。通常该值与Parent属性返回的值相同Document为活动的文档返回自动化对象。如果HTML当前正被显示在WebBrowser中,贝UDocument属性提供对DHTMLObjectModel的访问途径TopLevelContainer返回一个Boolean值,表明IE是否是WebBrowser控

17、件顶层容器,是就返回trueType返回已被WebBrowser控件加载的对象的类型。例如:如果加载.doc文件,就会返回MierosoftWordDocumentLeft返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离Top返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离Width返回或设置WebBrowser窗口的宽度,以像素为单位Height返回或设置WebBrowser窗口的高度,以像素为单位LocationName返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源是网页就是网页的标题;如果是文件或文件夹,就是文件或

18、文件夹的名称LocationURL返回WebBrowser当前正在显示的资源的URLBusy返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true就可以使用stop方法来撤销正在执行的访问操作如何利用WebBrowser控件,显示.GIF动画?要有一定的网页知识(HTML、JavaScript、CSS)注意细节:没有"滚动条"和"鼠标右键弹出的IE上下文菜单",".HTM源文件".我写了一个,效果还真不错!'Objects:Forml、Commandl、CommonDialogl、WebBr

19、owser1OptionExplicitPrivateSubCommand1_Click()CommonDialogl.ShowOpenIfVBA丄en(VBA.Trim(CommonDialogl.FileName)>0ThenDimpAsstdole.StdPictureDimsPathAsStringsPath=VBA.Trim(VBA.Trim(CommonDialogl.FileName)Setp=VB.LoadPicture(sPath)WebBrowser1.Width=p.Width*16/26WebBrowser1.Height=p.Height*16/26'W

20、ebBrowser1.Navigate"about:blank"WebBrowser1.Document.openWebBrowser1.Document.writeln""WebBrowser1.Document.writeln""WebBrowser1.Document.writeln""WebBrowser1.Document.writeln""WebBrowser1.Document.writeln"WebBrowser1.Document.writeln"WebBr

21、owser1.Document.writeln"WebBrowser1.Document.writeln"HWebBrowser1.Document.writeln""WebBrowser1.Document.writeln""EndIfEndSubPrivateSubForm_Load()Command1.Caption="&Open"WebBrowser1.Navigate"about:blank"WebBrowser1.Document.openWebBrowser1.Docume

22、nt.writeln""WebBrowser1.Document.writeln""WebBrowser1.Document.writeln""WebBrowser1.Document.writeln""WebBrowser1.Document.writeln"WebBrowser1.Document.writeln""WebBrowser1.Document.writeln""WebBrowser1.Document.CloseEndSubWebBrowser控件

23、说明方法说明GoBack相当于IE的“后退”按钮,使你在当前历史列表中后退一项GoForward相当于IE的“前进”按钮,使你在当前历史列表中前进一项GoHome相当于IE的“主页”按钮,连接用户默认的主页GoSearch相当于IE的“搜索”按钮,连接用户默认的搜索页面Navigate连接到指定的URLRefresh刷新当前页面Refresh2同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,该表定义在ExDisp.h中,可以指定的不同值如下:REFRESH_NORMAL执行简单的刷新,不将HTTPpragma:no-cache头发送给服务器REFRE

24、SH_IFEXPIRED只有在网页过期后才进行简单的刷新REFRESH_CONTINUE仅作内部使用。在MSDN里写着DONOTUSE!请勿使用REFRESH_COMPLETELY将包含pragma:no-cache头的请求发送到服务器Stop相当于IE的“停止”按钮,停止当前页面及其内容的载入属性说明Application如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser控件的自动化对象Parent返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口

25、Container返回WebBrowser控件容器的自动化对象。通常该值与Parent属性返回的值相同Document为活动的文档返回自动化对象。如果HTML当前正被显示在WebBrowser中,贝UDocument属性提供对DHTMLObjectModel的访问途径TopLevelContainer返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回trueType返回已被WebBrowser控件加载的对象的类型。例如:如果加载.doc文件,就会返回MierosoftWordDocumentLeft返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的

26、距离Top返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离Width返回或设置WebBrowser窗口的宽度,以像素为单位Height返回或设置WebBrowser窗口的高度,以像素为单位LocationName返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称LocationURL返回WebBrowser当前正在显示的资源的URLBusy返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true就可以使用stop方法来撤销正在执行的访问操作WebB

27、rowser的事件PrivateEventsDescriptionBeforeNavigate2导航发生前激发,刷新时不激发CommandStateChange当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward菜单项或按钮DocumentComplete当整个文档完成是激发,刷新页面不激发DownloadBegin当某项下载操作已经开始后激发,刷新也可激发此事件DownloadComplete当某项下载操作已经完成后激发,刷新也可激发此事件NavigateComplete?导航完成后激发,刷新时不激发NewWindow2在创建新窗口以前激发OnFullScreen当Ful

28、lScreen属性改变时激发。该事件采用VARIENT_BOOL的一个输入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)OnMenuBar改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。VARIANT_TRUE是可见,VARIANT.FALSE是隐藏OnQuit无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发OnStatusBar与OnMenuBar调用方法相同,标示状态栏是否可见。OnToolBar调用方法同上,标示工具栏是否可见。OnVisible控制窗口的可见或隐藏,也使用一个VARIE

29、NT_BOOL类型的参数StatusTextChange如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏TitleChangeTitle有效或改变时激发WEBBROWSER技巧(收藏)看到很多关于WebBrowser控件禁止右键的提问,回复的方法很多,其中有提到使用微软提供的Webbrowser扩展COM服务器对象(WBCustomizer.dll),但是该方法在我们想使用Webbrowser编辑网页(Webbrowser1.Document.execCommandeditMode)的时候有很多弊端,比如不能显示选中的文本等。另有些方法也就不用一一列举了。这儿我想提到

30、的是关于MSHTML.HTMLDocument引用MicrosoftHTMLOBjectLibraryRem#窗体代码#DimWithEventsM_DomAsMSHTML.HTMLDocumentPrivateFunctionM_Dom_oncontextmenu()AsBooleanM_Dom_oncontextmenu=FalseEndFunctionPrivateSubWebbrowser1_DownloadComplete()SetM_Dom=Webbrowser1.DocumentEndSubRem好了,右键菜单没有了控件调用和获得收藏夹里面基本上用specialfolder(6)

31、就可以得到收藏夹的路径,然后你可以用dir去循环读入每个目录,然后dir里面的file,file的名字就是你要的收藏的名字,路径可以自己根据从上面得到的路径去得到.如果你不用dir也可以用vb的dir控件.PrivateTypeSHITEMIDcbAsLongabIDAsByteEndTypePublicTypeITEMIDLISTmkidAsSHITEMIDEndTypePublicFunctionSpecialFolder(ByRefCSIDLAsLong)AsStringlocatethefavoritesfolderDimRAsLongDimsPathAsStringDimIDLAsI

32、TEMIDLISTConstNOERROR=0ConstMAX_LENGTH=260R=SHGetSpecialFolderLocation(MDIMain.hwnd,CSIDL,IDL)IfR=NOERRORThensPath=Space$(MAX_LENGTH)R=SHGetPathFromIDList(ByValIDL.mkid.cb,ByValsPath)IfRThenSpecialFolder=Left$(sPath,InStr(sPath,vbNullChar)-1)EndIfEndIfEndFunction是的,webbrowser本生是一个控件,你要它全屏,就是要它所在的窗体全

33、屏,可以用setwindowlong取消窗体的title,用CallShowWindow(FindWindow(Shell_traywnd,),0)隐藏tray,就是下边那个包含开始那一行.用CallShowWindow(FindWindow(Shell_traywnd,),9)恢复够详细了吧.然后在form1.windowstate=2就可以了.选择网页上的内容。PrivateSubCommand1_Click()请先选中一些内容Me.WebBrowserLExecWBOLECMDID_COPY,OLECMDEXECOPT_DODEFAULTMsgBoxClipboard.GetTextEndSub用IE来下载文件PrivateDeclareFunctionDoFileDownloadLibshdocvw.dll(ByVallpszFileAsString)AsLongPrivateSubCommand1_Click()DimsDownloadAsStringsDownload=StrConv(Text1.Text,vbUnicode)CallDoFileDownload(sDownload)EndSub保存webbrowser中的HTML内容DimoPFAsIPersistFileSetoPF=WebBrowser1.DocumentoPF.Save"Th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论