关于Word插件的开发:如何判断在某个时间点后,用户是否改变过文档?(100分)

X

xiaoer

Unregistered / Unconfirmed
GUEST, unregistred user!
如何判断Word文档是否被改变过?
比如,一个文档你打开后,如果改动后关闭,Word会提示你文档已改过。
现在我要的是,如何判断文档是否被改过。
注意,如果键入一个“a”,又删除掉,即回复原样,认为是没有改动过。
 
Document对象的Saved属性;Boolean 类型
如果为 True,则指定文档或模板从上一次保存后一直没有更改。
如果为 False,则当关闭文档时,Word 将提示保存文档。
 
谢谢ffsquell!
我试了一下,不是我想要的功能。
我的意思是,修改了文档,但如果又把它改回原样,我们还是认为它没有变。
但如果用Saved属性,只要改了文档,不管有没有改回原样,它都认为是变了的。
 
没问题。
我用原生com对象实现的
详情请参考word help--word vb language ref(custom 安装office带帮助)
 
aaab:
你是如何实现我所说功能的?请提示一下!
我知道看帮助,可不知道看哪一部分啊。
请指教!
 
:xiaoer, 你说的 "但如果又把它改回原样,我们还是认为它没有变。"
改回原样是怎么改的? 我试过的,
如果是用Word的Undo,Saved的属性自然会跟着变为True。
如果你是用Del,Backspace改为原样的,Word是无法判断的(负担太大),
而且我也觉得如果要判断的话,程序负担会很大(一个一个字符去判断),你没必要
考虑这种情况。

 
ffsquell,谢谢你!
我考虑了一下,你所说的应该是可行的。
只是这种情况,要判断文档是否改变过,是不是在要判断的那个时间点上,用户一定
要先保存文档啊?
我是想的,但如果不用保存,就可以判断就好了。
 
判断当然是可以的,不过Word好像没提供相应方法。
你可以试着自己用一个变量(或文件)保存原来的文本,到需要判断时再和
现在的文本比较,如果没差别,就代表没改过,比较麻烦。
 
我以前试过这种方法,Document对象有个Words属性,可以读出文档的全部文字。
但这种方法不好,第一如果是图形的操作,表现不出来,第二如果文档很大,则
把文档再存一次花的代价很大。
 
Word中好像没有提供相关判断所需的属性或方法
 
我是想做一个数字签名的功能。
就是在签名后,如果发现文档被改过,就认为签名无效。
签名动作为在Word中插入一个OleObject。
现在问题就是无法判断文档是否被改动过。
我也想到了让插入的ActiveX控件来记录用户的修改,但这样做难度太大,效率也不高。
我在网上见到过一个这方面的软件,不知道他是如何实现的。
有兴趣者请参看:
http://www.cnca.net/solution/app/mobiledesktop/signal.html
 
怎么没有人跟啦。
 
朋友们,怎么没有人来帮我啦。
 
比較文件的時間.改動過的文件,他的時間是更改了,(在文件的屬性里)
 
我是要在文档没有保存时就判断出来啊。
比如你键入了几个字母,此时就认为你文件改变了。
然后你又把这几个字母删除掉,把文档恢复到那个时间点的状态,就变为文档没有变。
这过程中保存不保存文档都没关系。

世界杯开始那一天给分,不管有没有满意的答案!:)
 
不一一判断估计很难。word只提供saved方法,只要你有修改动作就认为修改了,
不管你是否又还原了(undo除外)我觉得你应该在保存时提示,修改保存后签名就无效,
交给用户自己决定。
 
多人接受答案了。
 
老兄,你是怎么解决的,可以说说么?
还有一个问题,签名信息怎么保存
 

Similar threads

S
回复
0
查看
962
SUNSTONE的Delphi笔记
S
S
回复
0
查看
784
SUNSTONE的Delphi笔记
S
D
回复
0
查看
798
DelphiTeacher的专栏
D
D
回复
0
查看
751
DelphiTeacher的专栏
D
D
回复
0
查看
738
DelphiTeacher的专栏
D
顶部