程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 使用C#獲得系統信息

使用C#獲得系統信息

編輯:.NET實例教程

系統信息無外乎系統軟硬件信息,需要檢測的信息也是這些信息。.Net的類庫為我們提供了獲得系統消息所需的一些函數,為我們的程序設計帶來了不少的便利。



下面的部分將說明這些類庫中最基本的三個類庫的使用。



SystemInformation類



在這些類庫中,最基本的類庫是SystemInformation類,包含在System.Windows.Forms名字空間中。該類庫可以幫助我們獲得有關系統的基本信息。這個類中只包含了幾個從System.Object類繼承的公共方法,沒有提供其他的方法。系統的信息可以通過這個類的公共靜態成員獲得,我們可以根據需要獲得的信息選取合適的成員。下面我們以一個例子說明如何使用這些成員:



//SystemInformation類位於System.Windows.Forms名字空間中,使用它之前需要先引入該名字空間;

using System.Windows.Forms;

//使用SystemInformation的靜態成員獲得系統信息並顯示出來;

class Class1

{

static void Main(string[] args)

{

Console.WriteLine("計算機名:_"+System.Windows.Forms.SystemInformation.ComputerName.ToString());

Console.WriteLine("啟動方式:_"+System.Windows.Forms.SystemInformation.BootMode.ToString());

Console.WriteLine("域名:

_"+System.Windows.Forms.SystemInformation.UserDomainName.ToString());

}

}




上面的代碼只使用了SystemInformation類的三個靜態成員,其他成員的屬性及其能提供的信息可以參考MSDN。上面代碼的執行結果如下圖所示:








Environment 類



第二種方法是通過Environment 類,該類提供了有關當前環境和平台的信息以及操作它們的方法。



Environment 類除了提供了一些靜態成員外,還提供了一些靜態方法。我們還是通過一個例子說明這些方法和成員的使用:



class Class1

{

static void Main(string[] args)

{

Console.WriteLine("系統登錄時間:"+Environment.TickCount/1000/60+"分鐘。");

Console.WriteLine("用戶系統的當前目錄:"+Environment.CurrentDirectory);

Console.WriteLine("用戶系統使用的邏輯盤盤符:"+Environment.GetLogicalDrives());

Console.WriteLine("用戶系統的系統路徑:_"+Environment.GetFolderPath(Environment.SpecialFolder.System));

Console.ReadLine();

}

}




和前一個類一樣,我們也只使用了Environment類的幾個成員和方法,其他方法和成員以及更多的信息可以參考MSDN,上面代碼的執行結果如下:








RegistryKey 類



第三種方式是通過注冊表查詢系統信息,

這是最傳統的方法,也是功能最強大的方法和最復雜的方法。.Net中注冊表封裝在RegistryKey 類 中,位於Microsoft.win32命名空間中。



這個類和前兩個類不同,它的公共屬性我們能利用的機會很少,我們為了獲得系統信息主要是使用它的OpenSubKey 方法,然而為了使用這個方法,我們必須對注冊表有相當的了解才行,這也正是使用這個類獲得系統信息的復雜之處。如果你對注冊表很熟悉,將能獲得十分豐富的系統信息。



我們還是通過一個例子說明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("網卡信息:"+(String)Rkey.GetValue("Description"));

Console.ReadLine();

}

}




上面的例子僅僅顯示了處理器信息和網卡信息,如果你仔細查找前兩個類的成員信息,可以發現希望從前兩個類獲取硬件信息是不可能的,要獲取硬件信息還得借助注冊表或是WMI(視窗系統管理方法),不過要使用它們,你必須先對它們有個大致的了解。上面的代碼結果如下:






以上三種方法僅是起拋磚引玉的作用,希望獲得更多系統信息還得自己花時間實現;除了這三種方法,還可以通過其他方法獲得系統信息,例如通過WMI。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved