C#:如何知道是否安装了某个Office 2003或2007应用程序?

标签 c# .net ms-office

我需要知道 Windows Forms .net 2.0 C# 应用程序中是否安装了 Microsoft Word、Excel、Outlook、Project 等。
第一次尝试是简单地尝试创建应用程序对象并捕获任何异常,但这太耗时了。
有没有更快的方法来检测这个?比如检查注册表值,或者使用 COM 包装器的其他技术?

最佳答案

您可以使用 MSI (Windows Installer) API 来查明机器上是否存在相关的产品/软件包/组件代码。这些通过 P/Invoke 使用起来相当简单。

或者,您可以查看注册表。例如,Word 2007 将其安装位置放在 HKLM\SOFTWARE\Microsoft\Office\12.0\Word\InstallRoot

如果您计划使用互操作组件,这对您没有帮助,但它确实以合理的确定性告诉您是否安装了各种东西。

关于C#:如何知道是否安装了某个Office 2003或2007应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/531659/

相关文章:

c# - 如何对文件中的 xml 节点进行排序?

c# - 以最有效的方式从数据库到 C#

java - 在 Java 中打开受密码保护的 Word 文件?

c# - 在 C# 中绑定(bind)到数据库的 DataGridView 中添加一行

.net - 通用 WCF JSON 反序列化

c# - WCF 超时的最大值是多少?

.net - WinForms 应用程序的常见漏洞

javascript - 从 Javascript 插件控制 Word 文档中的选择范围

xml - 插入选项卡的控件名称

c# - 需要 CS1001 网站标识符