/// <summary>
/// office版本
/// </summary>
public enum OfficeVersion { Office2007,Office2003}
/// <summary>
/// 获取office版本
/// </summary>
/// <returns></returns>
public static OfficeVersion GetOfficeVersion()
{
OfficeVersion version = OfficeVersion.Office2003;
Microsoft.Win32.RegistryKey regKey = null;
Microsoft.Win32.RegistryKey regSubKey = null;
try
{
regKey = Microsoft.Win32.Registry.LocalMachine;
if (regSubKey == null)
{//office2007
regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\12.0\Common\InstallRoot", false);
version= OfficeVersion.Office2007;
}
if (regSubKey == null)
{//Office2003
regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\11.0\Common\InstallRoot", false);
version= OfficeVersion.Office2003;
}
}
catch (System.Security.SecurityException ex)
{
throw new System.Security.SecurityException("您没有读取注册表的权限", ex);
}
catch (Exception ex)
{
throw new Exception("读取注册表出错!", ex);
}
if (regKey != null)
{
regKey.Close();
regKey = null;
}
if (regSubKey != null)
{
regSubKey.Close();
regSubKey = null;
}
return version;
}
http://bbs.csdn.net/topics/350108050