gpt4 book ai didi

excel - 在此之前确定VSTO 4中的Office版本。应用程序已设置

转载 作者:行者123 更新时间:2023-12-02 07:55:16 28 4
gpt4 key购买 nike

我想在外接程序上调用 CreateRibbonExtensibilityObject() 时确定 VSTO 外接程序中 Office/Excel 的版本。我遇到过这样的问题,并且遇到过:

  • 插件的 this.Applicationnull,此时 VSTO 尚未设置它。
  • ThisAddIn_Startup(..)CreateRibbonExtensibilityObject() 之后调用。

this.Application.Version 尚不可用,因为插件此时似乎尚未初始化。当 VSTO 运行时在外接程序上调用 CreateRibbonExtensibilityObject() 时,是否有方法确定 Excel 的版本(12、14 或 15)?

更新

发现 ItemProvider 已实例化,我使用以下方法获取主要的 Office 版本。

FieldInfo temp = this.ItemProvider.GetType().GetField("_officeVersion", BindingFlags.NonPublic | BindingFlags.Instance);
uint officeVersion = (uint)temp.GetValue(this.ItemProvider);

我也接受SliverNinja的回答。

最佳答案

您可以使用System.Diagnostics来访问currently running Office process (excel.exe),获取 path to the process filename ( MainModule ),然后使用 FileInfoVersion确定major product version .

int majorVersion = FileVersionInfo.GetVersionInfo(Process.GetCurrentProcess().MainModule.FileName).ProductMajorPart;

关于excel - 在此之前确定VSTO 4中的Office版本。应用程序已设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13477726/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com