這一節主要講檢測,下一節講安裝!
一個C#制作完的工具一運作,一個可以不用檢測與安裝的就是framework環境了,要是沒這東西,也運作不起來。
這裡提供幾個檢測的範圍:
一.檢測作業系統版本
二.檢測IIS版本
三.檢測framework版本
四.檢測RAR工具是否安裝
以下為具體實作:
一.檢測作業系統版本:
我們通過:System.Environment.OSVersion.Version 可以擷取到作業系統的版本。
之後,我們要根據版本号,進行if else if或switch之類的分支判斷即可:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuQnchR3UrN2bsJEZlRmbhBHeF9CXzJ3b0F2YpRmbJdmbp5WasRXdP9CXt92YuM3ZvxmYuNmLzV2Zh1Wavw1LcpDc0RHaiojIsJye.gif)
public static string GetOSystemName()
{
return GetOSystemNameByVersion(System.Environment.OSVersion.Version) + "\r\n" + System.Environment.OSVersion.ServicePack;
}
private static string GetOSystemNameByVersion(Version version)
if (version.Major == 5 && version.Minor == 2)
{
return "Microsoft Windows Server 2003";
}
else if (version.Major == 5 && version.Minor == 1)
return "Microsoft Windows XP ";
else if (version.Major == 5 && version.Minor == 0)
return "Microsoft Windows 2000 ";
else if (version.Major <= 4)
return "Microsoft Windows NT ";
return "未知";
這裡主要是通過系統資料庫進行判斷:
我們通過擷取:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\INetStp下的
主版本号MajorVersion 和
次版本号MinorVersion 來判斷IIS的版本
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuQnchR3UrN2bsJEZlRmbhBHeF9CXzJ3b0F2YpRmbJdmbp5WasRXdP9CXt92YuM3ZvxmYuNmLzV2Zh1Wavw1LcpDc0RHaiojIsJye.gif)
public static string GetIISVerstion()
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\INetStp");
if (key == null) { return ""; }
return Convert.ToString(key.GetValue("MajorVersion")) + "." + Convert.ToString(key.GetValue("MinorVersion"));
和檢測IIS一樣,可以通過系統資料庫檢測:
系統資料庫路徑:
1.1版本:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322
2.0版本:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727
3.0版本:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup
3.5版本:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5
隻要判斷系統資料庫節點是否存在即可!代碼參考IIS檢測。
四.檢測RAR工具
這裡我是通過檢測RAR.exe檔案的常見安裝路徑來判斷檢測:
常見路徑:C:\Program Files\WinRAR\WinRAR.exe
這裡同樣檢測D盤,E盤路徑:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuQnchR3UrN2bsJEZlRmbhBHeF9CXzJ3b0F2YpRmbJdmbp5WasRXdP9CXt92YuM3ZvxmYuNmLzV2Zh1Wavw1LcpDc0RHaiojIsJye.gif)
public static bool IsFileExistsByCDE(string path)
bool exists=true;
if (!System.IO.File.Exists(path))
path = path.Replace("C:", "D:");
if (!System.IO.File.Exists(path))
{
path = path.Replace("D:", "E:");
if (!System.IO.File.Exists(path))
{
exists = false;
}
}
return exists;
打完,收工!
版權聲明:本文原創發表于部落格園,作者為路過秋天,原文連結:
http://www.cnblogs.com/cyq1162/archive/2010/01/19/1651366.html