以编程方式检查 MS Office 许可证状态

Joh*_*sco 6 c# c++ vba ms-word ms-office

是否可以以编程方式检查 MS Office (2007-2016) 许可证状态?(C++ 优先)

我将在下面与您分享我的研究,也许它会有所帮助。

我知道从 Office 2010 开始,有OSPP.vbs检查许可证状态的脚本。但是由于我不能在我的代码中使用这个脚本(因为安全问题),我使用 WMI 从 C++ 中的 SoftwareLicensingProduct 信息中查询 LicenseStatus 。

问题在于,对于 2013 年 office,查询返回了 36 个许可证(其中 2 个有密钥——第一个许可证代表 Word、Excel、PowerPoint,第二个代表 Visio)。对于 2016 office,每个 office 应用程序都有一个许可证(一个用于 Word,一个用于 Excel,一个用于 Powerpoint,另一个用于 Visio)。其中一个可能会比另一个更早到期,而对于 2013 Office,Word-Excel-PP 有一个通用许可证,另一个则是 Visio。我如何才能明确检测某个许可证 1) 是否涵盖了我通过对象模型使用的 Office 应用程序 2) 尚未过期?(对于每个在 SoftwareLicensingProduct 类中可用的应用程序,是否有某种 ID?)

NB关键是我正在通过 C++ 中的对象模型使用 Word、Excel、PowerPoint 和 Visio(2007-2016 版本),并且在启动我需要知道的任何应用程序之前,它们的许可证是否已过期。

我将不胜感激任何帮助!先感谢您。