小技巧(Office)
作者:rain 日期:2008-02-27
最近在一个项目中要实现一个功能就是检测office文档比如word产生的doc文件是否加过密的功能.看起来这微不足道,我的第一个反应就是看看office提供的interface中是否提供有此接口.查阅sdk发现提供一只写功能的Password属性,想想如果提供read的属性那还了得.再找找类似isPassword方法或属性基本就放弃了这个想法.Google了一下发现也有类似朋友遇到此类问题.通过open一些doc文件在遇到有password文件时可恶的oepn不返回NULL也不exception而是显示InputPassWord Dialog,这就达不到自动化的功能了.现在M$开放了Office文档的二进制结构,但不至于为这问题去分析这庞大的结构定义吧. 忽然我一拍脑袋,要密码是否就随便给个密码来使得open失败呢?经过试验随便在open()里给个密码打开有密码文档是会Exception,哈哈,这样就能Catch住了.密码猜对我也无话可说.使得这一方法通过的不可或缺的因素还在于在随便使用密码参数的open中打开无密码的doc文件没有任何副作用.呵呵,没想到这个问题就这样轻松的解决了.谁说编程是枯燥乏味的体力活?这不是在耍小聪明中充满了乐趣吗?!
Tags: Office






