日期:2014-05-18  浏览次数:21142 次

C#对word操作的问题
本人由于工作需要,需要在winForm里打开word文档,并且禁用其复制功能,打开word文档已经实现了,用dsoframer组件,可是关于禁用复制功能现在遇到瓶颈了,求有研究人士指导指导!目前已了解到在C#中可用
Microsoft.Office.Interop.Word.Application和Microsoft.Office.Interop.Word.Document这两个类操作,也了解到可以在word中定义宏
VB code
Sub EditCopy
' Selection.Copy 注释掉此行
End Sub

这样可以禁用复制功能,问怎样可以在C#里使用类似的方法禁用复制功能?因为只想在C#里打开的文档不被复制,而且打开的文件未知,不知如何能winForm在打开时禁用该功能,关闭时恢复功能,即可在正常打开情况下复制?
小弟先在这里谢谢了

------解决方案--------------------
用這個

http://ufo-crackerx.blog.163.com/blog/static/11307877820111017113958413/

打開只讀,,呵呵呵
------解决方案--------------------
学习,以后可能会 用到
------解决方案--------------------
http://www.cnblogs.com/fellowcheng/articles/1274276.html
------解决方案--------------------
我說那個控件,你可以可視化操作,可以屏蔽複製內容。。。
------解决方案--------------------
LZ是要在自己的程序里面打开word文档还是自己的程序触犯然后外部打开word?如果你是用com控件的方式外部打开word的话,就不好办得。
------解决方案--------------------
复制主要的实现手段
第一是在当前页面禁用鼠标右键的复制功能
第二是禁用快捷键Ctrl+C
第三是用js请求你禁止用户复制的数据,而不要用后台代码实现的方式请求

对于第二点,当你的页面在最前时,可以用一个键盘监听事件来截取wiindows消息,当你监听到ctrl+C的行为时,使用Clipboard.setData()方法将剪贴板的内容清空。
注意,这里只监听这个快捷键组合,不要注册,注册windows已有的键盘快捷键可能发生不可预料的冲突。

当然,这只能从复制的角度去防止,如果用户用QQ截图的方式一屏一屏的截图保存你也没辙。
------解决方案--------------------
叫美國老去死就可以,沒有office