栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何检测已安装的MS-Office版本?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何检测已安装的MS-Office版本?

检查安装的Office版本的一种方法是检查

InstallRoot
感兴趣的Office应用程序的注册表项。

例如,如果您想检查是否已安装Word 2007,则应检查是否存在以下注册表项:

HKLMSoftwareMicrosoftOffice12.0WordInstallRoot::Path

此项包含可执行文件的路径。

用相应的版本号替换12.0(用于Office 2007):

Office 97-7.0Office 98-8.0Office 2000-9.0Office XP-10.0Office 2003-11.0Office 2007-12.0Office 2010-14.0(原文如此!)Office 2013-15.0Office 2016年-16.0Office 2019-16.0(原文如此!)

其他应用程序具有类似的键:

HKLMSoftwareMicrosoftOffice12.0ExcelInstallRoot::PathHKLMSoftwareMicrosoftOffice12.0PowerPointInstallRoot::Path

或者,您可以检查所有应用程序的公共根路径:

HKLMSoftwareMicrosoftOffice12.0CommonInstallRoot::Path

另一种选择,而无需使用特定的注册表项是查询使用MSI数据库

MSIEnumProducts
API描述这里。

顺便说一句,Microsoft不正式支持不同Office版本的并行安装。它们确实起作用,但是您可能会得到不想要的效果和不一致之处。

更新:Office 2019和Office 365

从Office 2019开始,基于MSI的设置不再可用,即点即用是立即部署Office的唯一方法。与对定期更新的Office
365的更改一起,Office的主要/次要版本号也不再(至少暂时)未更新。这意味着-即使对于Office
2019-注册表项中使用的值和

Application.Version
(例如在Word中)返回的值仍为
16.0


目前,尚无记录的方法可以将Office 2016与Office 2019区别开来。但是,此版本还会针对修补的Office
2016版本增加(请参见下面@antonio的注释)。

如果您需要以某种方式区分Office版本,例如,确保存在某个功能或安装了最低版本的Office,则可能是查看主要Office应用程序之一的文件版本的最佳方法:

// Using the file path to winword.exe// Retrieve the path e.g. from the InstallRoot Registry keyvar fileVersionInfo = FileVersionInfo.GetVersionInfo(@"C:Program Files (x86)Microsoft OfficerootOffice16WINWORD.EXE");var version = new Version(fileVersionInfo.FileVersion);// On a running instance using the `Process` classvar process = Process.GetProcessesByName("winword").First();string fileVersionInfo = process.MainModule.FileVersionInfo.FileVersion;var version = Version(fileVersionInfo);

Office 2019的文件版本为16.0.10730.20102,因此如果您看到的内容大于您正在处理的Office 2019或当前Office
365版本。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415336.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号