使用WebBrowser控件,能够不弹出IE控件内置的右键,而弹出自己定义的右键?另外在Web1_DownloadComplete()事件完成之后(我的理解就是把所有的Html源代码下载完了,而那些图像,声音,Flash等没有下载),能够停止下载其他的东东吗?并且把html代码自己提取其中的有用数据,达到挖掘数据的效果?每次下载完图像才能够提取文本中的数据,简直就是太浪费时间和精力了~~~!!

解决方案 »

  1.   

    想提取其中的html建议用inet
    或者winsock
    可以屏蔽 webbrowser的菜单
      

  2.   

    我也知道用inet和winsock的,但是我不知道在用了它们之后,怎么使用MSHTML进行html文档的分析提取.自己编写一个parser是多么麻烦呀~~!!!请参看我的另一个问题:
    我怎样才能够把Html文件加到MSHTML的Document对象中去?
    http://community.csdn.net/Expert/TopicView.asp?id=3850250
      

  3.   

    '查看源码按钮
    Private Sub ViewButton_Click()  Dim Source1 As String
        '源代码
      Source1 = Inet1.OpenURL(txtURL.Text)
        '获得源代码
      If Source1 <> "" Then
      '如果获得了源代码
        RichTextBox1.Text = Source1
        '显示源代码
        Me.Inet1.Cancel
        'inet1控件取消连接
      Else
        Inet1.Cancel
        'inet1控件取消连接
        MsgBox ("Source code is not available.")
        '显示对话框
      End If
    End Sub加个inet控件就好了
      

  4.   

    http://it.rising.com.cn/antivirus/net_virus/spiteful/page_11.htm
      

  5.   

    微软提供的Webbrowser扩展COM服务器对象。该对象实现了IDocHostUIHandler接口。通过它可以控制你的程序中的Webbrowser控件。可以关闭右键菜单、禁止快捷键、禁止Ctrl+N打开新窗口等。压缩包中包含了WBCustomizer.dll以及VB范例,利用regsvr32.exe注册WBCustomizer.dll,然后运行范例就可以看到组件的运行效果http://www.applevb.com/sourcecode/wbcustom.zip
      

  6.   

    模块:Option ExplicitPublic Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Const GWL_WNDPROC = (-4)
    Public Const WH_MOUSE = 7
    Public Const WH_KEYBOARD = 2
    Public Const WM_RBUTTONDOWN = &H204
    Public lngMHook As Long
    Public lngKHook As Long'屏蔽鼠标右键功能
      Function MouseProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        If idHook < 0 Then
            MouseProc = CallNextHookEx(lngMHook, idHook, wParam, ByVal lParam)
        Else
            Select Case wParam
                Case WM_RBUTTONDOWN
                    MouseProc = 1
                    Exit Function
                Case Else
            End Select
            MouseProc = CallNextHookEx(lngMHook, idHook, wParam, ByVal lParam)
        End If
    End Function  Function KeydownProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        If idHook < 0 Then
            KeydownProc = CallNextHookEx(lngKHook, idHook, wParam, ByVal lParam)
        Else
            Select Case wParam
                Case 93
                    KeydownProc = 1
                    Exit Function
                Case Else
            End Select
            KeydownProc = CallNextHookEx(lngKHook, idHook, wParam, ByVal lParam)
        End If
    End Function
    窗体:Option ExplicitPrivate Sub Form_Load()
        '屏蔽鼠标右键的功能
        lngMHook = SetWindowsHookEx(WH_MOUSE, AddressOf MouseProc, App.hInstance, App.ThreadID)    '屏蔽键盘中模拟鼠标右键功能的按键
        lngKHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeydownProc, App.hInstance, App.ThreadID)
    End SubPrivate Sub Form_Unload(Cancel As Integer)
    '窗体退出,还原钩子函数
        
        Dim l As Long
        
        If lngMHook Then
            l = UnhookWindowsHookEx(lngMHook)
            lngMHook = 0
        End If
        
        If lngKHook Then
            l = UnhookWindowsHookEx(lngKHook)
            lngKHook = 0
        End If
     
    End Sub