WEBBROWSER 技巧一(收藏)

    技术2022-05-11  114

    转载

    看到很多关于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 = FalseEnd Function

     Private Sub Webbrowser1_DownloadComplete()      Set M_Dom = Webbrowser1.Document End Sub

    Rem 好了,右键菜单没有了

     

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

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

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

    Public Type ITEMIDLIST    mkid As SHITEMIDEnd TypePublic 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 IfEnd Function===================================================================================================全屏

    是的,webbrowser本生是一个控件, 你要它全屏,就是要它所在的窗体全屏, 可以用setwindowlong取消窗体的 title, 用Call ShowWindow(FindWindow("Shell_traywnd", ""), 0) 隐藏tray,就是下边那个包含开始那一行. 用Call ShowWindow(FindWindow("Shell_traywnd", ""), 9) 恢复. 够详细了吧.

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

    ==============================================================================================================选择网页上的内容。Private Sub Command1_Click()'请先选中一些内容Me.WebBrowser1.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULTMsgBox Clipboard.GetTextEnd Sub

    ==============================================================================================================用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

    Private Sub Form_Load()Text1.Text = "http://www.chat.ru/~softdaily/fo-ag162.zip"Form1.Caption = "Audiograbber 1.62 Full"Text2.Text = "http://www6.50megs.com/audiograbber/demos/cr-ag161.zip"End Sub

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

    我要动态加载和删除WebBrowser控件应该怎么做?

    Private Sub Command1_Click()   Form1.Controls.Add "shell.explorer.2", "NewWeb", Form1    With Form1!NewWeb        .Visible = True        .Width = 10000        .Height = 10000        .Left = 0        .Top = 0        .Navigate2 "www.csdn.net"    End WithEnd Sub

    Private Sub Command2_Click()     Controls.Remove Form1!newwebEnd Sub

    Form1.Controls.Add "shell.explorer.2", newweb(newweb.Count), Form1    With Form1!newweb(newweb.Count)        .Visible = True        .Width = 1000        .Height = 1000        .Left = newweb(newweb.Count - 1).Left + newweb(newweb.Count - 1).Width        .Top = 0        '.Navigate2 "www.csdn.net"    End With为什么他说我Form1.Controls.Add "shell.explorer.2", newweb(newweb.Count), Form1这一行错误13 类型不匹配?ps:我在form中已经有了一个newweb(0)控件

     

    先为一个WebBrowserDim i As IntegerPrivate Sub AddWeb_Click()    For i = 1 To 10        Load NewWeb(i)        NewWeb(i).Top = i * 100        NewWeb(i).Left = i * 100        NewWeb(i).Visible = True    Next iEnd Sub

    Private Sub DelWeb_Click()    For i = 1 To 10        Unload NewWeb(i)    Next iEnd Sub

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

    一个把页面保存为MHT(即MHTML)文件1、

    谢谢楼上几位大侠!我现在将 pcwak(书剑狂生[MS MVP]) 大侠提供的资料贴出来,以供大家参考: 我终于找到一个把页面保存为MHT(即MHTML)文件的方法了!首先,在工程中必须要引用一个库:Library CDOD:/WINNT/System32/cdosys.dllMicrosoft CDO for Windows 2000 Library其次,需要Stream对应的接口的支持,如果你一时找不到就使用支持这个的较新的ADO就行了,如Library ADODBD:/Program Files/Common Files/system/ado/msado15.dllMicrosoft ActiveX Data Objects 2.5 Library代码如下,十分简单(同时由于流的特点,显示在实际应用中没必要象本例中那样把文件保存到磁盘上就可直接转换为字符串或字节数组什么的处理的。

    另,对于Microsoft CDO for Windows 2000 Library这个库,在WIN98中要怎么使用还没试过,感兴趣的朋友可以试试并跟帖,以丰富完善其内容:)

    Private Sub Command1_Click()' Reference to Microsoft ActiveX Data Objects 2.5 Library' Reference to Microsoft CDO for Windows 2000 LibraryDim iMsg As New CDO.MessageDim iConf As New CDO.ConfigurationDim objStream As ADODB.Stream

    With iMsg.CreateMHTMLBody "http://www.163.com/";, , _"domain/username", _"password"Set objStream = .GetStreamCall objStream.SaveToFile("f:/test.mht", adSaveCreateOverWrite)End WithEnd Sub

    2、

    '首先加入对ADODB和CDO(Microsoft CDO for Windows 2000 Library,对应文件名为CDOSYS.dll)的引用Private Sub Command1_Click()    Dim message As New CDO.message    Dim Outstream As ADODB.Stream    On Error GoTo myerr1    Call message.CreateMHTMLBody("http://www.csdn.net", CDO.CdoMHTMLFlags.cdoSuppressNone, "", "")    Set Outstream = message.GetStream    Call Outstream.SaveToFile("c:/test.mht", ADODB.SaveOptionsEnum.adSaveCreateOverWrite)    MsgBox "完成"        Exit Submyerr1:    Set message = Nothing    Set Outstream = NothingEnd Sub

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

     

    请问高手们怎样在WebBrowser控件调用收藏夹和在收藏夹里添加收藏Option Explicit

    Private Sub Command1_Click()    Dim ObjSUH As New ShellUIHelper    ObjSUH.AddFavorite "http://www.csdn.net", ""    Set ObjSUH = NothingEnd Sub

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


    最新回复(0)