系統(tǒng)信息無(wú)外乎系統(tǒng)軟硬件信息,需要檢測(cè)的信息也是這些信息。.net的類庫(kù)為我們提供了獲得系統(tǒng)消息所需的一些函數(shù),為我們的程序設(shè)計(jì)帶來(lái)了不少的便利。
下面的部分將說(shuō)明這些類庫(kù)中最基本的三個(gè)類庫(kù)的使用。
SystemInformation類
在這些類庫(kù)中,最基本的類庫(kù)是SystemInformation類,包含在System.Windows.Forms名字空間中。該類庫(kù)可以幫助我們獲得有關(guān)系統(tǒng)的基本信息。這個(gè)類中只包含了幾個(gè)從System.Object類繼承的公共方法,沒(méi)有提供其他的方法。系統(tǒng)的信息可以通過(guò)這個(gè)類的公共靜態(tài)成員獲得,我們可以根據(jù)需要獲得的信息選取合適的成員。下面我們以一個(gè)例子說(shuō)明如何使用這些成員:
//SystemInformation類位于System.Windows.Forms名字空間中,使用它之前需要先引入該名字空間;
using System.Windows.Forms;
//使用SystemInformation的靜態(tài)成員獲得系統(tǒng)信息并顯示出來(lái);
class Class1
{
static void Main(string[] args)
{
Console.WriteLine("計(jì)算機(jī)名:_"+System.Windows.Forms.SystemInformation.ComputerName.ToString());
Console.WriteLine("啟動(dòng)方式:_"+System.Windows.Forms.SystemInformation.BootMode.ToString());
Console.WriteLine("域名:
_"+System.Windows.Forms.SystemInformation.UserDomainName.ToString());
}
}
上面的代碼只使用了SystemInformation類的三個(gè)靜態(tài)成員,其他成員的屬性及其能提供的信息可以參考MSDN。上面代碼的執(zhí)行結(jié)果如下圖所示:
Environment 類
第二種方法是通過(guò)Environment 類,該類提供了有關(guān)當(dāng)前環(huán)境和平臺(tái)的信息以及操作它們的方法。
Environment 類除了提供了一些靜態(tài)成員外,還提供了一些靜態(tài)方法。我們還是通過(guò)一個(gè)例子說(shuō)明這些方法和成員的使用:
class Class1
{
static void Main(string[] args)
{
Console.WriteLine("系統(tǒng)登錄時(shí)間:"+Environment.TickCount/1000/60+"分鐘。");
Console.WriteLine("用戶系統(tǒng)的當(dāng)前目錄:"+Environment.CurrentDirectory);
Console.WriteLine("用戶系統(tǒng)使用的邏輯盤盤符:"+Environment.GetLogicalDrives());
Console.WriteLine("用戶系統(tǒng)的系統(tǒng)路徑:_"+Environment.GetFolderPath(Environment.SpecialFolder.System));
Console.ReadLine();
}
}
和前一個(gè)類一樣,我們也只使用了Environment類的幾個(gè)成員和方法,其他方法和成員以及更多的信息可以參考MSDN,上面代碼的執(zhí)行結(jié)果如下:
RegistryKey 類
第三種方式是通過(guò)注冊(cè)表查詢系統(tǒng)信息,這是最傳統(tǒng)的方法,也是功能最強(qiáng)大的方法和最復(fù)雜的方法。.net中注冊(cè)表封裝在RegistryKey 類 中,位于Microsoft.win32命名空間中。
這個(gè)類和前兩個(gè)類不同,它的公共屬性我們能利用的機(jī)會(huì)很少,我們?yōu)榱双@得系統(tǒng)信息主要是使用它的OpenSubKey 方法,然而為了使用這個(gè)方法,我們必須對(duì)注冊(cè)表有相當(dāng)?shù)牧私獠判校@也正是使用這個(gè)類獲得系統(tǒng)信息的復(fù)雜之處。如果你對(duì)注冊(cè)表很熟悉,將能獲得十分豐富的系統(tǒng)信息。
我們還是通過(guò)一個(gè)例子說(shuō)明RegistryKey類的使用,以求拋磚引玉:
class Class1
{
static void Main(string[] args)
{
RegistryKey Rkey = Registry.LocalMachine;
Rkey = Rkey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");
Console.WriteLine("處理器信息:"+Rkey.GetValue("ProcessorNameString"));
Rkey=Registry.LocalMachine;
Rkey = Rkey.OpenSubKey("SOFTWARE\\Microsoft\\Windows _NT\\CurrentVersion\\NetworkCards\\1");
Console.WriteLine("網(wǎng)卡信息:"+(String)Rkey.GetValue("Description"));
Console.ReadLine();
}
}
上面的例子僅僅顯示了處理器信息和網(wǎng)卡信息,如果你仔細(xì)查找前兩個(gè)類的成員信息,可以發(fā)現(xiàn)希望從前兩個(gè)類獲取硬件信息是不可能的,要獲取硬件信息還得借助注冊(cè)表或是WMI(視窗系統(tǒng)管理方法),不過(guò)要使用它們,你必須先對(duì)它們有個(gè)大致的了解。上面的代碼結(jié)果如下:
以上三種方法僅是起拋磚引玉的作用,希望獲得更多系統(tǒng)信息還得自己花時(shí)間實(shí)現(xiàn);除了這三種方法,還可以通過(guò)其他方法獲得系統(tǒng)信息,例如通
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!