您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關C#中怎么利用WMI獲取數據,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
1. 首先啟動Visual Studio .Net,依次選擇"文件"、"新建"、"項目"菜單后,在彈出"新建項目"對話框中將"項目類型"設置為"Visual C#項目",將"模板"設置為"Windows應用程序",在"名稱"文本框中輸入"獲得遠程計算機硬盤信息",在"位置"的文本框中輸入"E:\VS.net項目",然后單擊"確定"按鈕。這樣在"E:\VS.NET項目"目錄中就創建了一個新的文件夾"獲得遠程計算機硬盤信息",里面存放的就是"獲得遠程計算機硬盤信息"的項目文件。
2. 由于Visual Studio .Net缺省的編譯環境中并沒有包括命名空間"System.Management"所位于的文件"System.Management.dll",所以首先要在項目文件中引入此DLL文件。具體的步驟如下:
3. 在【解決方案資源管理器】窗口中,雙擊Form1.cs文件,進入Form1.cs文件的編輯界面。
4. 在Form1.cs文件的開頭,用下列導入命名空間代碼替代系統缺省的導入命名空間代碼。
5. 把Visual Studio .net當前窗口切換到【Form1.cs(設計)】窗口,并從【工具箱】中的【Windows窗體組件】中往窗體中拖入下列組件,并執行相應操作:
◆三個TextBox組件,分別輸入遠程計算機名稱或IP地址,遠程計算機的超級用戶帳戶和口令。
◆一個ListBox組件,用以顯示遠程計算機硬盤信息。
◆三個Label組件。
◆一個Button組件,名稱為button1,拖入窗體后,雙擊此組件,則系統會在Form1.cs中自動產生其Click事件對應的處理代碼。
把Visual Studio .Net的當前窗口切換到Form1.cs文件的編輯窗口,并用下列代碼替換Form1.cs中的button1的Click事件對應的處理代碼。下列代碼的作用是對遠程計算機進行WMI查詢,提起查詢得到數據,C#利用WMI獲取數據代碼如下:
private void button1_Click ( object sender , System.EventArgs e )
{
long mb = 1048576 ;
//1024x1024
//設定生成的WMI所需的所有設置
System.Management.ConnectionOptions Conn = new ConnectionOptions ( ) ;
//設定用于WMI連接操作的用戶名
Conn.Username = textBox2.Text ;
//設定用戶的口令
Conn.Password = textBox3.Text ;
//設定用于執行WMI操作的范圍
System.Management.ManagementScope Ms = new ManagementScope
( "\\\\" + textBox1.Text + "\\root\\cimv2" , Conn ) ;try
{
//連接到實際操作的WMI范圍
Ms.Connect ( ) ;
//設定通過WMI要查詢的內容
ObjectQuery Query = new ObjectQuery
( "select FreeSpace ,Size ,Name from Win32_LogicalDisk where DriveType=3" ) ;//WQL語句,設定的WMI查詢內容和WMI的操作范圍,檢索WMI對象集合
ManagementObjectSearcher Searcher = new ManagementObjectSearcher ( Ms , Query ) ;
//異步調用WMI查詢
ManagementObjectCollection ReturnCollection = Searcher.Get ( ) ;
double free = 0 ;
double use = 0 ;
double total = 0 ;
listBox1.Items.Clear ( ) ;
//通過對產生的WMI的實例集合進行檢索,獲得硬盤信息
foreach ( ManagementObject Return in ReturnCollection )
{
listBox1.Items.Add ( "磁盤名稱:" + Return["Name"].ToString ( ) ) ;
//獲得硬盤的可用空間
free = Convert.ToInt64 ( Return["FreeSpace"] ) /mb ;
//獲得硬盤的已用空間
use = ( Convert.ToInt64 ( Return["Size"] ) -
Convert.ToInt64 ( Return["FreeSpace"] ) ) /mb ;//獲得硬盤的合計空間
total = Convert.ToInt64 ( Return["Size"] ) /mb ;
listBox1.Items.Add ( " 總計:"+ total.ToString ( ) + "MB" ) ;
listBox1.Items.Add ( "已用空間:"+ use.ToString ( ) + "MB" ) ;
listBox1.Items.Add ( "可用空間:"+ free.ToString ( ) + "MB" ) ;
}
}
catch ( Exception ee )
{
MessageBox.Show
( "連接" + textBox1.Text + "出錯,出錯信息為:" + ee.Message ,"出現錯誤!" ) ;}
}
以上就是C#中怎么利用WMI獲取數據,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。