Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms office 如何在c#中获取所有已安装的Ms Office实例(Word、Excel、Power Point)?_Ms Office - Fatal编程技术网

Ms office 如何在c#中获取所有已安装的Ms Office实例(Word、Excel、Power Point)?

Ms office 如何在c#中获取所有已安装的Ms Office实例(Word、Excel、Power Point)?,ms-office,Ms Office,我正在处理Win forms应用程序。在我的应用程序中,用户将能够从我的应用程序中启动不同版本的MS office软件(Word(2010、2013)、Excel(2010、2013)、Power point(2010、2013)) 我尝试过的: 我使用过Microsoft.Office.Interop.Word.Application,下面是示例 Microsoft.Office.Interop.Word.Application appVersion = new Microsoft.Offic

我正在处理Win forms应用程序。在我的应用程序中,用户将能够从我的应用程序中启动不同版本的MS office软件(Word(2010、2013)、Excel(2010、2013)、Power point(2010、2013))

我尝试过的:

我使用过Microsoft.Office.Interop.Word.Application,下面是示例

Microsoft.Office.Interop.Word.Application appVersion = new Microsoft.Office.Interop.Word.Application();
string version = appVersion.Version.ToString();
但问题是,它只返回一个设置为默认值的版本,我需要系统中安装的所有Ms word实例

问题:
如何在c#中获取所有已安装的Ms Office实例(Word、Excel、Power Point)?

使用您的解决方案,您只能获取最后安装的实例。 这是因为最后注册的COM对象将进行应答

最后一个存储在此注册表项中: HKEY_CLASSES_ROOT\Word.Application 在这些键处,至少有一个指向对象的文件夹“CLSID”

所有office版本都具有相同的名称和类id。 通过COM系统查找它们是一个问题

我认为使用or通过office升级代码查询windows安装程序更优雅

这将返回自office 2000或更高版本以来安装或发布的所有相关产品(按需安装)

您可以在其中查询安装状态和安装文件夹