我想要在.net中给一个文档加保护,代码如下:
Microsoft.Office.Interop.Word.Application newApp = new Microsoft.Office.Interop.Word.Application();
object Source = arr[4].ToString();
object Unknown = Type.Missing;
object protecttype = Microsoft.Office.Interop.Word.WdProtectionType.wdAllowOnlyReading;
Microsoft.Office.Interop.Word.Document doc = newApp.Documents.Open(ref Source, ref Unknown,ref Unknown, ref Unknown, ref Unknown,ref Unknown, ref Unknown, ref Unknown,ref Unknown, ref Unknown, ref Unknown,ref Unknown, ref Unknown, ref Unknown,ref Unknown, ref Unknown);
doc.Protect(protecttype);
报错
"Protect”方法没有采用“1”个参数的重载
Microsoft.Office.Interop.Word.Application newApp = new Microsoft.Office.Interop.Word.Application();
object Source = arr[4].ToString();
object Unknown = Type.Missing;
object protecttype = Microsoft.Office.Interop.Word.WdProtectionType.wdAllowOnlyReading;
Microsoft.Office.Interop.Word.Document doc = newApp.Documents.Open(ref Source, ref Unknown,ref Unknown, ref Unknown, ref Unknown,ref Unknown, ref Unknown, ref Unknown,ref Unknown, ref Unknown, ref Unknown,ref Unknown, ref Unknown, ref Unknown,ref Unknown, ref Unknown);
doc.Protect(protecttype);
报错
"Protect”方法没有采用“1”个参数的重载
VBA里面可以这么写,C#里面不行。声明:
C#
public virtual void Protect (
WdProtectionType Type,
[OptionalAttribute] ref Object NoReset,
[OptionalAttribute] ref Object Password,
[OptionalAttribute] ref Object UseIRM,
[OptionalAttribute] ref Object EnforceStyleLock
) 详细请参考:
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.protect(VS.80).aspx
object Unknown = Type.Missing;
doc.Protect(ref protecttype,ref Unknown,"abcd",ref Unknown,ref Unknown);报错
“Microsoft.Office.Interop.Word._Document.Protect(Microsoft.Office.Interop.Word.WdProtectionType, ref object, ref object, ref object, ref object)”最匹配的重载方法具有一些无效参数
空着也不行,unknown也不行.
我只要将一个word文档加上写保护.
System.Reflection.Missing.Value
试试吧。。
System.Reflection.Missing.Value
也不行.
你的密碼不能直接寫字符串,要先定義一個object變量,然後將變量寫入protect函數中