【问题标题】:How to detect Office 2019 programmatically?如何以编程方式检测 Office 2019?
【发布时间】:2019-03-24 09:01:46
【问题描述】:

我们习惯于通过获取完整版本(例如从已安装的 Office 可执行文件的文件信息)来检测当前安装的 Office 版本,并将市长版本映射到友好名称,例如 15 映射到“Office 2013”​​、16到“Office 2016”。

不过,Office 2019 的主要版本号没有变化。我们得到的版本号是 16.0.10827.20138

是否有可靠的方法将次要版本号映射到“Office 2019”? 2019 年将从哪个值开始?是否有其他方法可以检测是否安装了 Office 2019?

“Office 2016”没有更多的小更新了吗?

【问题讨论】:

    标签: office365 excel-2019


    【解决方案1】:

    根据我们的发现,Office 2016、2019 和 Office 365 的 Office 版本号/内部版本号可能相同。

    Office 2016 和 2019 应该具有冻结的功能集,而 Office 365 将自动更新新功能。在某些阶段 O365 和其他内部版本号将重叠。我们还发现,使用即点即用安装的 Office 2016 可能与 2019 具有相同的内部版本号,尽管它仅包含安全更新。

    随 MSI 安装的 Office 2016 将具有静态内部版本号。 Office 2019 没有 MSI 安装程序,这意味着它将自动更新并且其内部版本号可能会以与 Office 365 相同的方式增加?

    无论如何:不再可能从内部版本号确定 Office 版本。我们还求助于查找以下注册表项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun 
    

    如果它不存在且主版本号为 16,则它是 Office 2016 MSI 安装。

    如果存在,您就知道它是即点即用安装,您可以检查以下子项值,从中可以推断出 2016、2019 或 365:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration\ProductReleaseIDs 
    

    示例值为“O365ProPlusRetail”或“ProPlus2019Retail”或只是“ProPlusRetail”

    欢迎提出更好的建议。

    【讨论】:

    • “在某些阶段,O365 和其他内部版本号会重叠。” 是的,这已经开始了:我的开发机器上的 Office 2016 的版本为 16.0.11001.20108,我的机器上的 Office 2019测试机版本为16.0.10730.20102,较低​​。很不方便。
    【解决方案2】:

    Office 365、Office 2019 和 Office 2016 都具有相同的版本:16.0。 您可以参考以下链接:

    Supported scenarios for installing different versions of Office, Project, and Visio on the same computer

    目前微软尚未发布停止更新office2016的消息。

    我从文档中只看到office2019只有一个release,如果你已经安装了office2019,那么你的office2019就是开始。

    请查看以下链接:

    Update history for Office 2019

    【讨论】:

      【解决方案3】:

      不知道这对某人是否仍然重要,但对我来说就是今天,所以我想贡献我的发现。

      我不知道这是否可以转移到其他版本的office,但是对于2016年我找到了以下注册表值

      HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\ExperimentConfigs\Ecs\CountryCode
      HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\ExperimentConfigs\Ecs\LicenseCategoryInfo
      HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\ExperimentConfigs\Ecs\LicenseSKUInfo
      HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\ExperimentConfigs\Ecs\PerpetualLicenseInfo
      

      就我而言,这些键包含以下信息(顺序相同):

      std::wstring|DE
      std::wstring|3
      std::wstring|ProPlusRetail
      std::wstring|2016
      

      所以你所要做的就是读取这些键并剪切“std::wstring|”部分。

      希望对某人有所帮助。

      【讨论】:

      • 我有 Office 2016,关键 ExperimentConfigs 在 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common 下不存在:/
      【解决方案4】:

      我在How to detect installed version of MS-Office?这里做了一个完整的答案来检测Office 95-2019 / O365@

      该代码还允许 64 到 32 位回退和特定的 ClickAndRun 检测。 欢迎评论;)

      【讨论】:

        猜你喜欢
        • 2021-03-24
        • 2014-06-25
        • 1970-01-01
        • 1970-01-01
        • 2011-02-16
        • 2013-06-28
        • 2014-06-06
        • 2018-12-22
        • 1970-01-01
        相关资源
        最近更新 更多