有没有办法以编程方式确定.xls是否包含宏,而不是在Excel中实际打开它?
还有什么方法可以检查这些宏签名的证书(包括时间戳证书)吗?再次不使用Excel。
我特别想知道当存在宏时,是否有任何字符串总是出现在Excel文件的原始数据中。
答案 0 :(得分:2)
是的,您可以将.xls文件作为复合文档文件打开,并检查是否包含VBA文件夹和包含VBA代码的流。
此CodeProject文章中提供了示例代码:
证书信息存储在 DocumentSummaryInformation 流中。如果您想从那里读出信息,您应该深入了解Microsoft提供的文件格式规范:
[MS-OSHARED]: Office Common Data Types and Objects Structure Specification
[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification
答案 1 :(得分:0)
包含宏的xls文件应包含类似
的字符串Keyboard Shortcut:
不知道这是否是一个万无一失的解决方案