教您怎样在C#中锁定Word内容,还教您怎样把人家的锁定内容破解了
在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对象等等
//……
}
{
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文档中了咧。有没有提示问要密码的?没有,而且可以随意改动,嘿嘿,内容被取出来了,想干什么还不可以么?%*!~&(&%……
又是砖头,我闪!