本人由于工作需要,需要在winForm里打开word文档,并且禁用其复制功能,打开word文档已经实现了,用dsoframer组件,可是关于禁用复制功能现在遇到瓶颈了,求有研究人士指导指导!目前已了解到在C#中可用
Microsoft.Office.Interop.Word.Application和Microsoft.Office.Interop.Word.Document这两个类操作,也了解到可以在word中定义宏
Sub EditCopy
' Selection.Copy 注释掉此行
End Sub
这样可以禁用复制功能,问怎样可以在C#里使用类似的方法禁用复制功能?因为只想在C#里打开的文档不被复制,而且打开的文件未知,不知如何能winForm在打开时禁用该功能,关闭时恢复功能,即可在正常打开情况下复制?
小弟先在这里谢谢了

解决方案 »

  1.   

    用這個http://ufo-crackerx.blog.163.com/blog/static/11307877820111017113958413/打開只讀,,呵呵呵
      

  2.   

    T_T还没解决啊,哥们,有什么idea说来帮帮啊
      

  3.   

    http://www.cnblogs.com/fellowcheng/articles/1274276.html
      

  4.   

    可能是小弟表述得不是很清楚,重新说一下,我并不是想后台处理word文档,而是让word文档可视化,并让用户可编辑,可是在我的WinForm下打开的word文档我不能让它有复制功能,也就是说,我想知道有没有一个类似setOnBeforeCopy(bool isCopy)或者setOnCopy(EventHandle)的方法
      

  5.   

    LZ是要在自己的程序里面打开word文档还是自己的程序触犯然后外部打开word?如果你是用com控件的方式外部打开word的话,就不好办得。
      

  6.   

    是在内部打开的,用DsoFramer已经可以实现了,可以打开word程序后内嵌在自己的winForm里,最主要是现在没办法实现屏蔽复制功能
      

  7.   

    复制主要的实现手段
    第一是在当前页面禁用鼠标右键的复制功能
    第二是禁用快捷键Ctrl+C
    第三是用js请求你禁止用户复制的数据,而不要用后台代码实现的方式请求对于第二点,当你的页面在最前时,可以用一个键盘监听事件来截取wiindows消息,当你监听到ctrl+C的行为时,使用Clipboard.setData()方法将剪贴板的内容清空。
    注意,这里只监听这个快捷键组合,不要注册,注册windows已有的键盘快捷键可能发生不可预料的冲突。当然,这只能从复制的角度去防止,如果用户用QQ截图的方式一屏一屏的截图保存你也没辙。
      

  8.   

    叫美國老去死就可以,沒有office
      

  9.   

    说实话,几位都没有真正地帮我解决到我的问题,liuxin0121回答最靠谱了,至少理解我的问题!不过还是谢谢各位了,把分散给各位吧。