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

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

我将在下面与您分享我的研究,也许它会以某种方式提供帮助。

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

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

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

我会感激任何帮助! 先感谢您。