如何设置WORD文档的密码保护?(100分)

  • 主题发起人 主题发起人 hdflurry
  • 开始时间 开始时间
H

hdflurry

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个DLL,用ASP调用在服务器上生成一个WORD文档,现要求对WORD文档进行保护,
只能读取,不能修改,并且要加上保护密码。以下这句不行:
MyDoc.Protect(Password:='abc', NoReset:=False, Type:= wdAllowOnlyFormFields);

而使用
WordApp.Documents.Item(1).Protect(wdAllowOnlyComments);
这句的话虽然能保护,但可以用WORD工具栏上的"解除锁定"来取消保护,而且不能加密码。


 
FileName:='c:/f.doc';
FileFormat:=wdFormatDocument;
LockComments:=False;
Password:='123';
AddToRecentFiles:=True;
WritePassword:='456';
ReadOnlyRecommended:=False;
EmbedTrueTypeFonts:=False;
SaveNativePictureFormat:=False;
SaveFormsData:=False;
SaveAsAOCELetter:=False;
w.ActiveDocument.SaveAs(FileName,FileFormat,LockComments,Password,AddToRecentFiles,WritePassword,ReadOnlyRecommended,EmbedTrueTypeFonts,SaveNativePictureFormat,SaveFormsData,SaveAsAOCELetter);
 
我要求的不是在保存WORD时加一个密码。WORD的工具栏中有一项"保护文档...",在这里可
以选择保护类型以及保护密码。我的意思是如何用DELPHI实现在这里保护文档以及加密码。
 
打开文档时以只读方式打开

FileName:='dfasdfsdaf.doc';
ConfirmConversions:=False;
ReadOnly:=True;
AddToRecentFiles:=False;
PasswordDocument:='';
PasswordTemplate:='';
Revert:=False;
WritePasswordDocument:='';
WritePasswordTemplate:='';
Format:=wdOpenFormatAuto;

Documents.Open(FileName,ConfirmConversions,ReadOnly,AddToRecentFiles, PasswordDocument,PasswordTemplate,Revert,WritePasswordDocument, WritePasswordTemplate,Format)
 
唉,我是要用DELPHI生成一个WORD文档,生成时加上我上面说的密码保护,然后保存到硬盘
上。不是打开一个已经存在、且有密码的文档。
 
var
PassWord : OleVariant;
NoReset : OleVariant;

PassWord := 'abc';
NoReset := False;
MyDoc.Protect(wdAllowOnlyFormFields,NoReset,PassWord);
 
var
Password,NoReset:oleVariant;
begin
Password:='123';
NoReset:=false;
..
WordApplication1.ActiveDocument.Protect(wdAllowOnlyFormFields,Password,NoReset);
 
TO realLearning:
你的意思是我正需要的东西。但是我在DELPHI7下试了,不行。我做的是一个DLL来让ASP调
用,来在服务器上生成一个WORD文档并加上如上所述的密码保护。
这个 Password 参数倒底应该放在哪里呢???急死了。一天了这个破问题没有搞定!
请继续关注!!
 
出什么错?我在d5下是可以的。
 
我用的D7,按你的写法编译好以后,用ASP调用这个DLL时错误如下:
错误类型:
GwjhPrj.gwjh (0x800A1221)
 
我把 wdAllowOnlyFormFields 换成 wdAllowOnlyComments 就行了。TMD,在VBA里写得明明
白白的,到DELPHI里 wdAllowOnlyFormFields 就不能用了!郁闷了一天!!不管了,散
分。
 
多人接受答案了。
 
后退
顶部