溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#中怎么利用WMI獲取數(shù)據(jù)

發(fā)布時間:2021-07-07 17:21:39 來源:億速云 閱讀:236 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關(guān)C#中怎么利用WMI獲取數(shù)據(jù),小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1. 首先啟動Visual Studio .Net,依次選擇"文件"、"新建"、"項目"菜單后,在彈出"新建項目"對話框中將"項目類型"設(shè)置為"Visual C#項目",將"模板"設(shè)置為"Windows應(yīng)用程序",在"名稱"文本框中輸入"獲得遠(yuǎn)程計算機硬盤信息",在"位置"的文本框中輸入"E:\VS.net項目",然后單擊"確定"按鈕。這樣在"E:\VS.NET項目"目錄中就創(chuàng)建了一個新的文件夾"獲得遠(yuǎn)程計算機硬盤信息",里面存放的就是"獲得遠(yuǎn)程計算機硬盤信息"的項目文件。

2. 由于Visual Studio .Net缺省的編譯環(huán)境中并沒有包括命名空間"System.Management"所位于的文件"System.Management.dll",所以首先要在項目文件中引入此DLL文件。具體的步驟如下:

3. 在【解決方案資源管理器】窗口中,雙擊Form1.cs文件,進(jìn)入Form1.cs文件的編輯界面。

4. 在Form1.cs文件的開頭,用下列導(dǎo)入命名空間代碼替代系統(tǒng)缺省的導(dǎo)入命名空間代碼。

5. 把Visual Studio .net當(dāng)前窗口切換到【Form1.cs(設(shè)計)】窗口,并從【工具箱】中的【W(wǎng)indows窗體組件】中往窗體中拖入下列組件,并執(zhí)行相應(yīng)操作:
◆三個TextBox組件,分別輸入遠(yuǎn)程計算機名稱或IP地址,遠(yuǎn)程計算機的超級用戶帳戶和口令。
◆一個ListBox組件,用以顯示遠(yuǎn)程計算機硬盤信息。
◆三個Label組件。
◆一個Button組件,名稱為button1,拖入窗體后,雙擊此組件,則系統(tǒng)會在Form1.cs中自動產(chǎn)生其Click事件對應(yīng)的處理代碼。

把Visual Studio .Net的當(dāng)前窗口切換到Form1.cs文件的編輯窗口,并用下列代碼替換Form1.cs中的button1的Click事件對應(yīng)的處理代碼。下列代碼的作用是對遠(yuǎn)程計算機進(jìn)行WMI查詢,提起查詢得到數(shù)據(jù),C#利用WMI獲取數(shù)據(jù)代碼如下:

  1. private void button1_Click ( object sender , System.EventArgs e )  

  2. {  

  3. long mb = 1048576 ;  

  4. //1024x1024  

  5. //設(shè)定生成的WMI所需的所有設(shè)置  

  6. System.Management.ConnectionOptions Conn = new ConnectionOptions ( ) ;  

  7. //設(shè)定用于WMI連接操作的用戶名  

  8. Conn.Username = textBox2.Text ;  

  9. //設(shè)定用戶的口令  

  10. Conn.Password = textBox3.Text ;  

  11. //設(shè)定用于執(zhí)行WMI操作的范圍  

  12. System.Management.ManagementScope Ms = new ManagementScope 
    ( "\\\\" + textBox1.Text + "\\root\\cimv2" , Conn ) ;  

  13. try  

  14. {  

  15. //連接到實際操作的WMI范圍  

  16. Ms.Connect ( ) ;  

  17. //設(shè)定通過WMI要查詢的內(nèi)容  

  18. ObjectQuery Query = new ObjectQuery 
    ( "select FreeSpace ,Size ,Name from Win32_LogicalDisk where DriveType=3" ) ;  

  19. //WQL語句,設(shè)定的WMI查詢內(nèi)容和WMI的操作范圍,檢索WMI對象集合  

  20. ManagementObjectSearcher Searcher = new ManagementObjectSearcher ( Ms , Query ) ;  

  21. //異步調(diào)用WMI查詢  

  22. ManagementObjectCollection ReturnCollection = Searcher.Get ( ) ;  

  23. double free = 0 ;  

  24. double use = 0 ;  

  25. double total = 0 ;  

  26. listBox1.Items.Clear ( ) ;  

  27. //通過對產(chǎn)生的WMI的實例集合進(jìn)行檢索,獲得硬盤信息  

  28. foreach ( ManagementObject Return in ReturnCollection )  

  29. {  

  30. listBox1.Items.Add ( "磁盤名稱:" + Return["Name"].ToString ( ) ) ;  

  31. //獲得硬盤的可用空間  

  32. free = Convert.ToInt64 ( Return["FreeSpace"] ) /mb ;  

  33. //獲得硬盤的已用空間  

  34. use = ( Convert.ToInt64 ( Return["Size"] ) - 
    Convert.ToInt64 ( Return["FreeSpace"] ) ) /mb ;  

  35. //獲得硬盤的合計空間  

  36. total = Convert.ToInt64 ( Return["Size"] ) /mb ;  

  37. listBox1.Items.Add ( " 總計:"+ total.ToString ( ) + "MB" ) ;  

  38. listBox1.Items.Add ( "已用空間:"+ use.ToString ( ) + "MB" ) ;  

  39. listBox1.Items.Add ( "可用空間:"+ free.ToString ( ) + "MB" ) ;  

  40. }  

  41. }  

  42. catch ( Exception ee )  

  43. {  

  44. MessageBox.Show 
    ( "連接" + textBox1.Text + "出錯,出錯信息為:" + ee.Message ,"出現(xiàn)錯誤!" ) ;  

  45. }  

  46. }  

以上就是C#中怎么利用WMI獲取數(shù)據(jù),小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

wmi
AI