请教用VB设置Word密码、属性的问题!

时间:2022-04-16 09:04:47
Word直接设置文件保护貌似有两种方法,一是:修改、打开时需要密码,二是:强制保护,不允许任何修改,除非输入密码取消强制保护。我在网上搜到第一种密码可以用VB来实现,但是感觉安全性不高,而且打开Word时会提示输入密码,很不方便。
我想采用第二种保密方法,不知道能不能用VB打开已知强制保护密码的Word,然后解除强制保护,再写入数据,最后加上强制保护密码和模式?
还有就是强制保护这种保密方式的缺点在于可以复制Word文档中的内容,请问能不能用VB设置Word属性,使得不能复制Word中的内容呢?
两个问题,希望大家帮忙提供方法或代码!!!感谢大家~

20 个解决方案

#1


没研究过
帮顶

#2


1)写保护
Set wDoc = wApp.Documents.Open( FileName:="C:\Doc1.doc", ReadOnly:=False, WritePasswordDocument:="abc")
修改 wDoc 内容
wDoc.SaveAs FileName:="C:\Doc1.doc", WritePassword:="abc"

2)禁止复制做不到。除非你不让用户看文档,那么加上打开密码。

#3


你把Word转换成PDF格式的,就可以设置不能复制吧。。。

没有研究过密码的问题、、

#4


PDF 照样可以复制。

#5


引用 2 楼 Tiger_Zhao 的回复:
1)写保护 

VB codeSet wDoc = wApp.Documents.Open( FileName:="C:\Doc1.doc", ReadOnly:=False, WritePasswordDocument:="abc")
修改 wDoc 内容
wDoc.SaveAs FileName:="C:\Doc1.doc", WritePassword:="abc"


2)禁止复制做不到。除非你不让用户看文档,那么加上打开密码。 


非常感谢,可是这个只是设置写密码,并没有开启强制保护,所以这个word可以修改,然后另存。
我只知道在word安全设置里面可以设置写密码并且开启强制保护,不知道VB里还要设置什么属性。麻烦您再看看~

#6


没研究过,不过PDF也可以复制     UP

#7


多谢楼主,俺也学习了!

#8


密码的问题也是一樣設置,他可以設置幾種密碼。
引用 3 楼 zuoxingyu 的回复:
你把Word转换成PDF格式的,就可以设置不能复制吧。。。

没有研究过密码的问题、、

#9


引用 5 楼 rfhust 的回复:
非常感谢,可是这个只是设置写密码,并没有开启强制保护,所以这个word可以修改,然后另存。 
我只知道在word安全设置里面可以设置写密码并且开启强制保护,不知道VB里还要设置什么属性。麻烦您再看看~

    wApp.Documents.Protect Password:="abc", NoReset:=False, Type:= _
        wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False

#10


呵呵,没用过

#11


你究竟是想防止复制内容,还是防止修改,打开文件后不允许修改,他可以全部复制,然后另存文件进行修改,还可以覆盖你先前的文件。

#12


引用 9 楼 Tiger_Zhao 的回复:
引用 5 楼 rfhust 的回复:
非常感谢,可是这个只是设置写密码,并没有开启强制保护,所以这个word可以修改,然后另存。 
我只知道在word安全设置里面可以设置写密码并且开启强制保护,不知道VB里还要设置什么属性。麻烦您再看看~ 

VB code    wApp.Documents.Protect Password:="abc", NoReset:=False, Type:= _
        wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False


使用这个wApp.ActiveDocument.Protect是可以实现Word的强制保护,但是不知道能不能禁止复制,如果可以我就加分好了,不行的话就结贴散分了,多谢各位!

#13



.PDF 文件是可以设置成不可复制并加密的。但是从网上随便下载一个破解软件就可解开。

如果想只允许用户目试阅读,不允许复制,可以截图做成图片,再做成 .PDF。

#14


楼上说的是个办法,不过工作量太大了吧...

#15


你可以监视剪切板,如果被复制,就清除剪切板内容

#16


引用 15 楼 huyongsc 的回复:
你可以监视剪切板,如果被复制,就清除剪切板内容

请问能说具体一点,或者是有代码吗?我去加分~

#17


那样仅在你的程序启动后才起效。
我可以将文件保存到U盘,到其它计算机上打开,你怎么阻止?

#18


引用 17 楼 Tiger_Zhao 的回复:
那样仅在你的程序启动后才起效。 
我可以将文件保存到U盘,到其它计算机上打开,你怎么阻止?

非常感谢,很有道理。那请问在程序打开的情况下怎么监视剪切板呢?
能不能我把word文档的后缀名更改为.abc,每次打开都是改文件后缀名。但是打开后能禁止WORD另存为吗?

#19


文件复制是不能制止的,你可以换个思路:
既然通过Word本身的保护你可以保证某个特定的 doc 本身不被修改,那么你可以对这个文件计算 MD5 作为数字指纹,文件名和指纹的对应关系可以在你的程序(数据库)中查到。你只向用户保证符合该指纹的文件才是你生成的 doc 文件。

单独的 MD5 计算工具:http://www.slavasoft.com/hashcalc/
可供 VB 调用的库:http://www.slavasoft.com/quickhash/

#20


非常感谢!就此结贴~

#1


没研究过
帮顶

#2


1)写保护
Set wDoc = wApp.Documents.Open( FileName:="C:\Doc1.doc", ReadOnly:=False, WritePasswordDocument:="abc")
修改 wDoc 内容
wDoc.SaveAs FileName:="C:\Doc1.doc", WritePassword:="abc"

2)禁止复制做不到。除非你不让用户看文档,那么加上打开密码。

#3


你把Word转换成PDF格式的,就可以设置不能复制吧。。。

没有研究过密码的问题、、

#4


PDF 照样可以复制。

#5


引用 2 楼 Tiger_Zhao 的回复:
1)写保护 

VB codeSet wDoc = wApp.Documents.Open( FileName:="C:\Doc1.doc", ReadOnly:=False, WritePasswordDocument:="abc")
修改 wDoc 内容
wDoc.SaveAs FileName:="C:\Doc1.doc", WritePassword:="abc"


2)禁止复制做不到。除非你不让用户看文档,那么加上打开密码。 


非常感谢,可是这个只是设置写密码,并没有开启强制保护,所以这个word可以修改,然后另存。
我只知道在word安全设置里面可以设置写密码并且开启强制保护,不知道VB里还要设置什么属性。麻烦您再看看~

#6


没研究过,不过PDF也可以复制     UP

#7


多谢楼主,俺也学习了!

#8


密码的问题也是一樣設置,他可以設置幾種密碼。
引用 3 楼 zuoxingyu 的回复:
你把Word转换成PDF格式的,就可以设置不能复制吧。。。

没有研究过密码的问题、、

#9


引用 5 楼 rfhust 的回复:
非常感谢,可是这个只是设置写密码,并没有开启强制保护,所以这个word可以修改,然后另存。 
我只知道在word安全设置里面可以设置写密码并且开启强制保护,不知道VB里还要设置什么属性。麻烦您再看看~

    wApp.Documents.Protect Password:="abc", NoReset:=False, Type:= _
        wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False

#10


呵呵,没用过

#11


你究竟是想防止复制内容,还是防止修改,打开文件后不允许修改,他可以全部复制,然后另存文件进行修改,还可以覆盖你先前的文件。

#12


引用 9 楼 Tiger_Zhao 的回复:
引用 5 楼 rfhust 的回复:
非常感谢,可是这个只是设置写密码,并没有开启强制保护,所以这个word可以修改,然后另存。 
我只知道在word安全设置里面可以设置写密码并且开启强制保护,不知道VB里还要设置什么属性。麻烦您再看看~ 

VB code    wApp.Documents.Protect Password:="abc", NoReset:=False, Type:= _
        wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False


使用这个wApp.ActiveDocument.Protect是可以实现Word的强制保护,但是不知道能不能禁止复制,如果可以我就加分好了,不行的话就结贴散分了,多谢各位!

#13



.PDF 文件是可以设置成不可复制并加密的。但是从网上随便下载一个破解软件就可解开。

如果想只允许用户目试阅读,不允许复制,可以截图做成图片,再做成 .PDF。

#14


楼上说的是个办法,不过工作量太大了吧...

#15


你可以监视剪切板,如果被复制,就清除剪切板内容

#16


引用 15 楼 huyongsc 的回复:
你可以监视剪切板,如果被复制,就清除剪切板内容

请问能说具体一点,或者是有代码吗?我去加分~

#17


那样仅在你的程序启动后才起效。
我可以将文件保存到U盘,到其它计算机上打开,你怎么阻止?

#18


引用 17 楼 Tiger_Zhao 的回复:
那样仅在你的程序启动后才起效。 
我可以将文件保存到U盘,到其它计算机上打开,你怎么阻止?

非常感谢,很有道理。那请问在程序打开的情况下怎么监视剪切板呢?
能不能我把word文档的后缀名更改为.abc,每次打开都是改文件后缀名。但是打开后能禁止WORD另存为吗?

#19


文件复制是不能制止的,你可以换个思路:
既然通过Word本身的保护你可以保证某个特定的 doc 本身不被修改,那么你可以对这个文件计算 MD5 作为数字指纹,文件名和指纹的对应关系可以在你的程序(数据库)中查到。你只向用户保证符合该指纹的文件才是你生成的 doc 文件。

单独的 MD5 计算工具:http://www.slavasoft.com/hashcalc/
可供 VB 调用的库:http://www.slavasoft.com/quickhash/

#20


非常感谢!就此结贴~

#21