惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MongoDB | Blog
MongoDB | Blog
罗磊的独立博客
美团技术团队
B
Blog
量子位
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
aimingoo的专栏
aimingoo的专栏
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Vercel News
Vercel News
Blog — PlanetScale
Blog — PlanetScale
云风的 BLOG
云风的 BLOG
Microsoft Azure Blog
Microsoft Azure Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题

博客园 - 南疯

C#中获得月份中的第一天和最后一天和判断闰年 VS2008的网页报表可以直接打印了 Impossible 与 I’m possible 别吵了,.NET和JAVA两大帮派合并了! 让"指定的 MSProjectServerRole 帐户不属于 MSProjectServerRole 角色"去死吧 我所理解的工作流工作模式 BusinessObjects系统用户信息同步的解决类 关于BusinessObjects系统单点登录(SSO)解决办法(二) 关于BusinessObjects系统单点登录(SSO)解决办法(一) 一个封装比较完整的FTP类——clsFTP How to share Session variables across Domains(在不同域之间共享Session) 还是VS2005全角问题 博客园(堂)内的互助有感 一个完整的接口技术解决方案 一个完整的接口技术解决方案(八) 一个完整的接口技术解决方案(七) 一个完整的接口技术解决方案(六) 一个完整的接口技术解决方案(五) 一个完整的接口技术解决方案(四)
教您怎样在C#中锁定Word内容,还教您怎样把人家的锁定内容破解了
南疯 · 2007-04-29 · via 博客园 - 南疯

       在C#中如何操作Word文档的文章一大箩框,我也来凑凑热闹,不过,我不想写太多,否则,看官,等您看完本搏,发现相当什么都没说一样,嘘——,闪砖头先!

      总是有一些Word文档,比如正式的公文,签字的文件等等,创建者在写完文档之后,总是给文档来一把锁。注意,我这里所说的锁不是打开文档的时候输入密码的那种锁,而是可以让您正常打开,但是不能修改里面文字内容,不能删除里面的文字内容,不能调整文档的格式,甚至不能复制粘贴内容,另存为另外的文件也还是依旧的那种锁(光看着着急,想做点坏事都不行)。

       下面我来教教您怎样在C#中实现这样的功能,学会这招,也许哪天您也能Show一把。实现非常easy:

public void LockWordContent(string FileName, string ProtectPWD)
        
{
            Microsoft.Office.Interop.Word.Application Ap 
= new Application();
            Ap.Visible 
= false;   
            
object objFileName = FileName;
            
object obj = Type.Missing;
            
//打开Word文档
            Microsoft.Office.Interop.Word.Document Doc = Ap.Documents.Open(ref objFileName,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj,
                
ref obj);

            
//下面对文档里面的内容进行各种操作操作
            
//……

            
//操作结束,保存之前对文档进行内容锁定
            Object objProtectPWD = ProtectPWD;   //锁定的密码
            Object NoSet = null;
            Doc.Protect2002(WdProtectionType.wdAllowOnlyFormFields, 
ref NoSet, ref objProtectPWD);

            Doc.Save();

            
//后面关闭Doc对象等等
            
//……
        }

       看着您成功的把Word文档加锁,您也许坏坏的邪笑,(*^__^*) 嘻嘻……
       慢着!下面的方法可以破解您的所有锁定,不管是代码实现的锁定还是在Word本身中实现的锁定。您不是只能看,不能改不能删么?这样做:
1、关闭被锁定的文档A.DOC
2、新建一个Word文档B.DOC
3、在文档B.DOC中,依次打开菜单“插入--对象--文件中的文字”(我是office2007版本,2003也一样)
WOO double!怎么啦,A文档中所有的内容被插入到B文档中了咧。有没有提示问要密码的?没有,而且可以随意改动,嘿嘿,内容被取出来了,想干什么还不可以么?%*!~&(&%……
又是砖头,我闪!