可能重复:
C#: How to know whether certain Office 2003 or 2007 application is installed?
如何检查是否使用C#安装了Microsoft Office?
答案 0 :(得分:7)
如果您不需要特定的Office版本,可以通过查找其中一个办公室应用程序(例如winword.exe)的应用程序路径进行检查:
private static bool IsOfficeInstalled()
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe");
if (key!= null)
{
key.Close();
}
return key != null;
}
答案 1 :(得分:0)
你可以在注册表中找到答案: -
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\办公室\ nn.n \字\ InstallRoot
nn.n将是安装版本11.0或12.00
答案 2 :(得分:0)
尝试使用其中的版本创建对象,如果它抛出错误,很明显,您正在寻找的MSOffice没有安装。
尝试以下
之类的内容try
{
//try creating the object here.
}
catch(Exception ex)
{
// You can decide that the 3rd party instance required is not installed
}
因为所有客户都不会授予您阅读注册表的权限