vb+webbrowser控件详解

1、获得浏览器信息

private sub command1_click()

   
webbrowser1.navigate “”


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


点击command1浏览网页,点击command2在立即窗口中输出浏览器信息。

2、弹出webbrowser消息窗口

   
dim owindow


   
set owindow = webbrowser1.document.parentwindow


   
owindow.confirm “abcd”

vb调用webbrowser技巧集2

向webbrowser中写入html内容的几种方法


首先在form_load中加入


webbrowser1.navigate “about:blank”


确保webbrowser1可用


方法1:


   
dim s as string


   
dim stream as istream


    s = “hello world


   
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”

vb调用webbrowser技巧集3

1、页面滚动:

private sub command2_click()

   
webbrowser1.document.parentwindow.scrollby 0 30


end sub


private sub form_load()


   
webbrowser1.navigate “”


end sub


点击command2就可以使当前页面向下滚动30像素

2、判断页面是否可以前进后退

private sub command1_click()

   
webbrowser1.goforward


end sub


private sub command2_click()


   
webbrowser1.goback


end sub


private sub form_load()


   
webbrowser1.navigate “”


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

 

vb调用webbrowser技巧集4

1、如何使网页不出现滚动条:

private sub mnuscroll1_click()

       
@#注意:必须在网页完全显示之后才可以运行


   
webbrowser1.document.body.scroll = “no” @#不显示滚动条的办法


end sub


private sub mnuscroll2_click()


       
@#注意:必须在网页完全显示之后才可以运行


   
webbrowser1.document.body.scroll = “auto” @#显示滚动条的办法


end sub

2、如何获得网页中被选中部分的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


private sub form_load()


   
webbrowser1.navigate “”


end sub

 

navigate 方 法 的 语 法 格 式 为:

   
webbrowser1.navigate     url


   
[flags][targetframename][postdata][headers]

webbrowser 控件支持的主要方法有:

goback———回退到上一屏。

goforward———进入到下一屏。


gohome———回家。即回到主页。


stop———停止导航。


refresh———刷新。


navigate———导航。

webbrowser控件所响应的事件:

 beforenavigate事件 ———在开始导航前发生。一般在此获取完整的url字符串。
 webbrowser控件 最主要的参数:
 url ———获得导航用的标准url字符串。例如:它能将””自动翻译为””

使用webbrowser的navigator或者navigator2方法打开一个asp文档并且传递
参数进去,但是asp文档无法获得参数,请教是什么原因?
vb源码:


private sub cmdsubmit_click()


   
dim strurl as string, strformdata as string


   
dim strdata as string


   
strurl = trim$(txturl.text)


   
strformdata = “name=” & trim$(txtname.text) &
“&password=” &trim$(txtpassword.text)


   
call wbtest.navigate2(strurl 64 “_blank” strformdata
“hello”)


end sub

asp源码:

*********************************************************************


option explicit


private sub command1_click()


   
dim szvalue as string


   
webbrowser1.document.body.innerhtml = “method=post action=http://地址/xxx.php>”


   
webbrowser1.document.forms(“post”).submit


end sub


private sub form_load()


   
webbrowser1.navigate2 “about:blank”


end sub


 


********************************************************************


请问:在webbrwoser控件里提供的navigate或者navigate2方法中提供了传递数据的参数,调用方式为:


    webbrowser1.navigate2(url[flags]
[targetframename][postdata][headers])


 
其中postdata参数就是一个提交参数字符串,例如”name=aaa&password=123″,


但问题是为什么这个方法并不是有效的,服务器端不能取得数据?
如果这个方法是有效的话就不需要用一段html代码模拟这种调用了。


下面代码能检测出程序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

webbrowser的8个方法和13个属性 

WebBrowser 参数原型:

    WebBrowser1.Navigate [Flags,][TargetFrameName,][PostData,][Headers]

 

WebBrowser的8个方法和13个属性,以及它们的功能:

方法

说明

GoBack

相当于IE的“后退”按钮,使你在当前历史列表中后退一项。

GoForward

相当于IE的“前进”按钮,使你在当前历史列表中前进一项。

GoHome

相当于IE的“主页”按钮,连接用户默认的主页。

GoSearch

相当于IE的“搜索”按钮,连接用户默认的搜索页面。

Navigate

连接到指定的URL

Refresh

刷新当前页面。

Refresh2

同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,该表定义在ExDisp.h中,可以指定的不同值如下: 
REFRESH_NORMAL 执行简单的刷新,不将HTTP pragma: no-cache
头发送给服务器。
REFRESH_IFEXPIRED 只有在网页过期后才进行简单的刷新。
REFRESH_CONTINUE 仅作内部使用。在MSDN里写着DO NOT USE! 请勿使用。
REFRESH_COMPLETELY 将包含pragma: no-cache头的请求发送到服务器。

Stop

相当于IE的“停止”按钮,停止当前页面及其内容的载入。

属性

说明

Application

如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser控件的自动化对象。

Parent

返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口。

Container

返回WebBrowser控件容器的自动化对象。通常该值与Parent属性返回的值相同。

Document

为活动的文档返回自动化对象。如果HTML当前正被显示在WebBrowser中,则Document属性提供对DHTML Object Model的访问途径。

TopLevelContainer

返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true

Type

返回已被WebBrowser控件加载的对象的类型。例如:如果加载.doc文件,就会返回Microsoft Word Document

Left

返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离。

Top

返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离。

Width

返回或设置WebBrowser窗口的宽度,以像素为单位。

Height

返回或设置WebBrowser窗口的高度,以像素为单位。

LocationName

返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称。

LocationURL

返回WebBrowser当前正在显示的资源的URL

Busy

返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true就可以使用stop方法来撤销正在执行的访问操作。

 

WebBrowser 的事件:

Private Events

(私有活动) 

Description (描述)

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

如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏。

TitleChange

Title有效或改变时激发。

 

如何利用 webbrowser 控件显示 .gif 动画?


要有一定的网页知识(html、javascript、css)
注意细节:


没有”滚动条”和”鼠标右键弹出的 ie 上下文菜单””.htm 源文件” …


我写了一个效果还真不错!


\’objects: form1、command1、commondialog1、webbrowser1


option explicit


private sub command1_click()


   
commondialog1.showopen


 
if vba.len(vba.trim(commondialog1.filename)) >0 then


   
dim p as stdole.stdpicture


   
dim spath as string


   
spath = vba.trim(vba.trim(commondialog1.filename))


   
set p = vb.loadpicture(spath)


   
webbrowser1.width = p.width * 16 / 26


   
webbrowser1.height = p.height * 16 / 26


       
\’ webbrowser1.navigate “about:blank”


   
webbrowser1.document.open


   
webbrowser1.document.writeln “”


   
webbrowser1.document.writeln “webbrowser1.document.writeln ” 


   
webbrowser1.document.writeln “”


 
end if


end sub


private sub form_load()


   
command1.caption = “&open”


   
webbrowser1.navigate “about:blank”


   
webbrowser1.document.open


   
webbrowser1.document.writeln “”


   
webbrowser1.document.writeln “webbrowser1.document.writeln “”


   
webbrowser1.document.writeln “”


   
webbrowser1.document.close


end sub

webbrowser 的事件


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  如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏


titlechange  title有效或改变时激发

webbrowser 技巧(收藏)


看到很多关于webbrowser控件禁止右键的提问,回复的方法很多,其中有提到使用微软提供的webbrowser扩展com服务器对象(wbcustomizer.dll),但是该方法在我们想使用webbrowser编辑网页(webbrowser1.document.execcommand
editmode)的时候有很多弊端,比如不能显示选中的文本等。另有些方法也就不用一一列举了。


这儿我想提到的是关于mshtml.htmldocument
引用microsoft html object library


rem #窗体代码#


   
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


rem 好了,右键菜单没有了


=======================================================================


控件调用和获得收藏夹里面


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

  

版权声明:本文为whchensir原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/whchensir/articles/5618881.html