首页 > 其他 > 详细

检测Office是否安装以及获取安装 路径 及安装版本 QQ,迅雷,旺旺 C#代码

时间:2014-02-26 12:24:24      阅读:344      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
#region 检测Office是否安装 
///<summary> 
/// 检测是否安装office 
///</summary> 
///<param name="office_Version"> 获得并返回安装的office版本</param> 
///<returns></returns> 
public static bool IsInstallOffice(out string office_Version, out string office_Path) 
{ 
bool result = false; 
string str_OfficePath = string.Empty; 
string str_OfficeVersion = string.Empty; 
office_Version = string.Empty; 
office_Path = string.Empty; 

GetOfficePath(out str_OfficePath, out str_OfficeVersion); 
if (!string.IsNullOrEmpty(str_OfficePath) && !string.IsNullOrEmpty(str_OfficeVersion)) 
{ 
result = true; 
office_Version = str_OfficeVersion; 
office_Path = str_OfficePath; 
} 
return result; 
} 

///<summary> 
/// 获取并返回当前安装的office版本和安装路径 
///</summary> 
///<param name="str_OfficePath">office的安装路径</param> 
///<param name="str_OfficeVersion">office的安装版本</param> 
private static void GetOfficePath(out string str_OfficePath, out string str_OfficeVersion) 
{ 
string str_PatheResult = string.Empty; 
string str_VersionResult = string.Empty; 
string str_KeyName = "Path"; 
object objResult = null; 
Microsoft.Win32.RegistryValueKind regValueKind;//指定在注册表中存储值时所用的数据类型,或标识注册表中某个值的数据类型。 
Microsoft.Win32.RegistryKey regKey = null;//表示 Windows 注册表中的项级节点(注册表对象?) 
Microsoft.Win32.RegistryKey regSubKey = null; 
try 
{ 
regKey = Microsoft.Win32.Registry.LocalMachine;//读取HKEY_LOCAL_MACHINE项 
if (regSubKey == null) 
{//office97 
regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\8.0\Common\InstallRoot", false);//如果bool值为true则对打开的项进行读写操作,否则为只读打开 
str_VersionResult = "Office97"; 
str_KeyName = "OfficeBin"; 
} 
if (regSubKey == null) 
{//Office2000 
regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\9.0\Common\InstallRoot", false); 
str_VersionResult = "Pffice2000"; 
str_KeyName = "Path"; 
} 
if (regSubKey == null) 
{//officeXp 
regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\10.0\Common\InstallRoot", false); 
str_VersionResult = "OfficeXP"; 
str_KeyName = "Path"; 
} 

if (regSubKey == null) 
{//Office2003 
regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\11.0\Common\InstallRoot", false); 
str_VersionResult = "Office2003"; 
str_KeyName = "Path"; 
try 
{ 
objResult = regSubKey.GetValue(str_KeyName); 
regValueKind = regSubKey.GetValueKind(str_KeyName); 
} 
catch (Exception ex) 
{ 
regSubKey = null; 
} 
} 

if (regSubKey == null) 
{//office2007 
regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\12.0\Common\InstallRoot", false); 
str_VersionResult = "Office2007"; 
str_KeyName = "Path"; 
} 
objResult = regSubKey.GetValue(str_KeyName); 
regValueKind = regSubKey.GetValueKind(str_KeyName); 
if (regValueKind == Microsoft.Win32.RegistryValueKind.String) 
{ 
str_PatheResult = objResult.ToString(); 
} 
} 
catch (Exception ex) 
{ 
LogHelper.WriteLogError(ex.ToString()); 
//throw ex; 
} 
finally 
{ 
if (regKey != null) 
{ 
regKey.Close(); 
regKey = null; 
} 

if (regSubKey != null) 
{ 
regSubKey.Close(); 
regSubKey = null; 
} 
} 
str_OfficePath = str_PatheResult; 
str_OfficeVersion = str_VersionResult; 
} 
#endregion
bubuko.com,布布扣

 

同理,检测QQ、Fetion、360杀毒、IE浏览器,Chrome、Office 2003/2007/2010

只需修改验证:

regSubKey = regKey.OpenSubKey(@"SOFTWARE\Tencent\PlatForm_Type_List\3", false);//如果bool值为true则对打开的项进行读写操作,否则为只读打开

即可

检测QQ是否已安装,通过注册表

bubuko.com,布布扣
#region 检测QQ是否安装 
public static bool isInstallQQ(out string QQVersion, out string QQPath) 
{ 
bool result = false; 
string str_QQPath = string.Empty; 
string str_QQVersion = string.Empty; 
QQVersion = string.Empty; 
QQPath = string.Empty; 

GetQQPath(out str_QQPath, out str_QQVersion); 
if (!string.IsNullOrEmpty(str_QQPath) && !string.IsNullOrEmpty(str_QQVersion)) 
{ 
result = true; 
QQVersion = str_QQVersion; 
QQPath = str_QQPath; 
} 
return result; 
} 

/// <summary> 
/// 
/// </summary> 
/// <param name="str_QQPath"></param> 
/// <param name="str_QQVersion"></param> 
private static void GetQQPath(out string str_QQPath, out string str_QQVersion) 
{ 
string str_PatheResult = string.Empty; 
string str_VersionResult = string.Empty; 
string str_KeyName = "TypePath"; 
object objResult = null; 
Microsoft.Win32.RegistryValueKind regValueKind;//指定在注册表中存储值时所用的数据类型,或标识注册表中某个值的数据类型。 
Microsoft.Win32.RegistryKey regKey = null;//表示 Windows 注册表中的项级节点(注册表对象?) 
Microsoft.Win32.RegistryKey regSubKey = null; 
try 
{ 
regKey = Microsoft.Win32.Registry.LocalMachine;//读取HKEY_LOCAL_MACHINE项 
if (regSubKey == null) 
{//QQ 
regSubKey = regKey.OpenSubKey(@"SOFTWARE\Tencent\PlatForm_Type_List\3", false);//如果bool值为true则对打开的项进行读写操作,否则为只读打开 
str_VersionResult = "QQ"; 
str_KeyName = "TypePath"; 
} 
objResult = regSubKey.GetValue(str_KeyName); 
regValueKind = regSubKey.GetValueKind(str_KeyName); 
if (regValueKind == Microsoft.Win32.RegistryValueKind.String) 
{ 
str_PatheResult = objResult.ToString(); 
} 
} 
catch (Exception ex) 
{ 
LogHelper.WriteLogError(ex.ToString()); 
//throw ex; 
} 
finally 
{ 
if (regKey != null) 
{ 
regKey.Close(); 
regKey = null; 
} 

if (regSubKey != null) 
{ 
regSubKey.Close(); 
regSubKey = null; 
} 
} 
str_QQPath = str_PatheResult; 
str_QQVersion = str_VersionResult; 
} 
#endregion
bubuko.com,布布扣

迅雷

bubuko.com,布布扣
#region 检测 Thunder 迅雷 
public static bool isInstallThunder(out string thunderVersion, out string thunderPath) 
{ 
bool result = false; 
string str_ThunderPath = string.Empty; 
string str_ThunderVersion = string.Empty; 
thunderVersion = string.Empty; 
thunderPath = string.Empty; 
// veryhuo.com 
GetThunderPath(out str_ThunderPath, out str_ThunderVersion); 
if (!string.IsNullOrEmpty(str_ThunderPath) && !string.IsNullOrEmpty(str_ThunderVersion)) 
{ 
result = true; 
thunderVersion = str_ThunderVersion; 
thunderPath = str_ThunderPath; 
} 
return result; 
} 

/// <summary> 
/// 
/// </summary> 
/// <param name="str_QQPath"></param> 
/// <param name="str_QQVersion"></param> 
private static void GetThunderPath(out string str_thunderPath, out string str_thunderVersion) 
{ 
string str_PatheResult = string.Empty; 
string str_VersionResult = string.Empty; 
string str_KeyName = "Path"; 
object objResult = null; 
Microsoft.Win32.RegistryValueKind regValueKind;//指定在注册表中存储值时所用的数据类型,或标识注册表中某个值的数据类型。 
Microsoft.Win32.RegistryKey regKey = null;//表示 Windows 注册表中的项级节点(注册表对象?) 
Microsoft.Win32.RegistryKey regSubKey = null; 
try 
{ 
regKey = Microsoft.Win32.Registry.LocalMachine;//读取HKEY_LOCAL_MACHINE项 
if (regSubKey == null) 
{//QQ 
regSubKey = regKey.OpenSubKey(@"SOFTWARE\Thunder Network\ThunderOem\thunder_backwnd", false);//如果bool值为true则对打开的项进行读写操作,否则为只读打开 
str_VersionResult = "Thunder"; 
str_KeyName = "Path"; 
} 
objResult = regSubKey.GetValue(str_KeyName); 
regValueKind = regSubKey.GetValueKind(str_KeyName); 
if (regValueKind == Microsoft.Win32.RegistryValueKind.ExpandString) 
{ 
str_PatheResult = objResult.ToString(); 
} 
} 
catch (Exception ex) 
{ 
LogHelper.WriteLogError(ex.ToString()); 
} 
finally 
{ 
if (regKey != null) 
{ 
regKey.Close(); 
regKey = null; 
} 
if (regSubKey != null) 
{ 
regSubKey.Close(); 
regSubKey = null; 
} 
} 
str_thunderPath = str_PatheResult; 
str_thunderVersion = str_VersionResult; 
} 
#endregion
bubuko.com,布布扣

检测Office是否安装以及获取安装 路径 及安装版本 QQ,迅雷,旺旺 C#代码

原文:http://www.cnblogs.com/ArRan/p/3567582.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!