各位好!小弟用vb和webbrowser做了个类似浏览器的东西,并且屏蔽了右键和选中等功能,然后将公司的内部资料word、excel等文档另存为网页,以便用这个这个自制的浏览器打开。我这样做是为了保护公司资料不被盗。可没想到,用这个自制的浏览器打开word保存的网页,可以屏蔽右键和文本选中等功能,但是打开excel保存的网页却不屏蔽右键和文本选中等功能。小弟绞尽脑汁也想不出这是为什么,为何同样是html文件效果却一样呢?希望高手帮忙指教。谢谢。这是我的vb源代码:
Option Explicit
Private WithEvents M_Dom As MSHTML.HTMLDocumentPrivate Sub brwWebBrowser_NewWindow2(ppDisp As Object, Cancel As Boolean)
    Dim NFrm As New Form1
    NFrm.brwWebBrowser.RegisterAsBrowser = True
    Set ppDisp = NFrm.brwWebBrowser.Object
    NFrm.Visible = True
End SubPrivate Sub Form_Load()
    brwWebBrowser.Navigate "D:\我的文档\桌面\物料编码目录手册-标准件模板(V2.0).htm"
End SubPrivate Sub Form_Resize()
    brwWebBrowser.Width = Me.ScaleWidth
    brwWebBrowser.Height = Me.ScaleHeight
End SubPrivate Function M_Dom_oncontextmenu() As Boolean
    M_Dom_oncontextmenu = False
End FunctionPrivate Sub brwWebBrowser_DownloadComplete()
    Set M_Dom = brwWebBrowser.Document '屏蔽右键菜单
End SubPrivate Function M_Dom_onselectstart() As Boolean
    M_Dom_onselectstart = False
End Function

解决方案 »

  1.   

    在右击webbrowser控件时可以设置弹出菜单出哪些项目是隐藏或禁用的啊
      

  2.   

    你屏蔽的是IE右键,不是EXCEL的右键,当用WebBrowser打开EXCEL文档时,IE会以OLE嵌入形式调用Excel的COM对象,此时,IE的文档区不再是HTMLDOCUMENT而为EXCEL的WORKSHEET了,因此右键屏蔽失败。要想屏蔽EXCEL文档的右键,首先要设置IE权限为中低,然后在EXCEL文档里写相应脚本,可以参考《EXCEL里屏蔽菜单、右键》。
      

  3.   

    干脆子类化,把复制粘贴功能吃掉.这样你再选中也没用...同时再吃掉右键,也不能看源代码......哇哈哈.子类化吃复制粘贴可以参考:http://www.m5home.com/blog/article.asp?id=338把句柄换成Webbrowser的句柄(用GetWindow查找标题为Shell DocObject View的窗口),再把拦截那里的代码改改,添加上右键的处理:Case WM_COPY, WM_PASTE, WM_CUT '复制,粘贴,剪切处理改成:Case WM_COPY, WM_PASTE, WM_CUT, WM_RBUTTONDOWN, WM_RBUTTONUP    '复制,粘贴,剪切处理就行了.
      

  4.   

    其实要拿走这些资料还是有办法的.我大不了拍照,然后OCR............反正是打印字体,识别率极高.只能在一定程度上防止而已.......所以技术角度去防止的效果应该还没有签定保密协议的效果好.既然都能接触到公司的机密文件了,那肯定已经是中高层领导了,为了以后的职业生涯,保密协议会更有力量.
      

  5.   

    你干脆用虚拟打印机将文档打印成图片好了,统一浏览图片。不过如老马所言,防不住 OCR 的。
    又:直接截屏好了,绝对比拍照清晰。
      

  6.   


    这个设置应该是vs2005时才有的吧。唉 我用的是vb6.0 没这功能呀。还好用其他方法也能实现屏蔽菜单。
    还是很感谢你的提示呀。
      

  7.   

    谢谢各位的回答。
    myjian (嗷嗷叫的老马---思路啊思路.)的子类化方法很有价值。可惜那方面我比较菜,参透不了。
    现在这个问题现在已解决。主要是excel文档采用发布方式保存为网页,而不是直接另存为网页格式。
    这个两种方法有什么区别我也说不清楚,希望大家继续探讨啊。
      

  8.   

    excel本身就有所定工作薄的功能,锁定后就不能右键了