word版本的一个小问题

给反假系统做的word套打,中间有个步骤用js调用dsoframer,word.document.protect来保护凭证不被用户手动修改。

 

oframe.ActiveDocument.Protect(3);
oframe.ActiveDocument.UnProtect();

后一句在生成凭证前调用,前一句在打开文档和生成凭证后调用。

项目经理L去给用户演示时,怎么都生不成凭证,xx行用的都是正版的office2000,哎,没办法,开发和测试都只做了2003和2007的。回来找了台装了2000的机器测,加了n个alert,试了试UnProtect出错,提示参数超出范围。但是奇怪的是,这个UnProtect压根儿没有参数,奇怪之极,翻了下Protect的参数,果然,在word2000下,只有-1,0,1,2四个,没有3这个参数。而2003和2007下,多了一个AllowOnlyForReading=3的参数。

 

知道了就可以处理了,通过Application.Version拿到word版本,9.0,10.0,11.0,12.0分别对应word2000,xp,2003,2007。判断下,如果是9.0,就换成参数2,否则用3。

 

你可能感兴趣的:(XP)