自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#利用WMI獲取數(shù)據(jù)剖析

開發(fā) 后端
這里介紹C#利用WMI獲取數(shù)據(jù),這種實(shí)現(xiàn)方法無論是程序設(shè)計(jì)還是后面的程序分發(fā)都是及其困難的。而使用WMI,一切就顯得非常簡(jiǎn)單。

C#語言有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#利用WMI獲取數(shù)據(jù),包括介紹把Visual Studio .Net的當(dāng)前窗口切換到Form1.cs文件的編輯窗口等方面。

如果不使用WMI,想要獲取遠(yuǎn)程計(jì)算機(jī)的系統(tǒng)數(shù)據(jù),最常用的方法就是在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行一個(gè)客戶端程序,本地機(jī)通過和這個(gè)客戶端程序來獲取遠(yuǎn)程計(jì)算機(jī)的系統(tǒng)數(shù)據(jù)。這種實(shí)現(xiàn)方法無論是程序設(shè)計(jì)還是后面的程序分發(fā)都是及其困難的。而使用WMI,一切就顯得非常簡(jiǎn)單。下面介紹的這個(gè)示例,其功能是C#利用WMI獲取數(shù)據(jù)。各位只需對(duì)這個(gè)程序稍加修改,就可以獲得遠(yuǎn)程計(jì)算機(jī)的其他數(shù)據(jù)。下面是具體的實(shí)現(xiàn)步驟:

1. 首先啟動(dòng)Visual Studio .Net,依次選擇"文件"、"新建"、"項(xiàng)目"菜單后,在彈出"新建項(xiàng)目"對(duì)話框中將"項(xiàng)目類型"設(shè)置為"Visual C#項(xiàng)目",將"模板"設(shè)置為"Windows應(yīng)用程序",在"名稱"文本框中輸入"獲得遠(yuǎn)程計(jì)算機(jī)硬盤信息",在"位置"的文本框中輸入"E:\VS.net項(xiàng)目",然后單擊"確定"按鈕。這樣在"E:\VS.NET項(xiàng)目"目錄中就創(chuàng)建了一個(gè)新的文件夾"獲得遠(yuǎn)程計(jì)算機(jī)硬盤信息",里面存放的就是"獲得遠(yuǎn)程計(jì)算機(jī)硬盤信息"的項(xiàng)目文件。
 
2. 由于Visual Studio .Net缺省的編譯環(huán)境中并沒有包括命名空間"System.Management"所位于的文件"System.Management.dll",所以首先要在項(xiàng)目文件中引入此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è)計(jì))】窗口,并從【工具箱】中的【W(wǎng)indows窗體組件】中往窗體中拖入下列組件,并執(zhí)行相應(yīng)操作:
◆三個(gè)TextBox組件,分別輸入遠(yuǎn)程計(jì)算機(jī)名稱或IP地址,遠(yuǎn)程計(jì)算機(jī)的超級(jí)用戶帳戶和口令。
◆一個(gè)ListBox組件,用以顯示遠(yuǎn)程計(jì)算機(jī)硬盤信息。
◆三個(gè)Label組件。
◆一個(gè)Button組件,名稱為button1,拖入窗體后,雙擊此組件,則系統(tǒng)會(huì)在Form1.cs中自動(dòng)產(chǎn)生其Click事件對(duì)應(yīng)的處理代碼。

把Visual Studio .Net的當(dāng)前窗口切換到Form1.cs文件的編輯窗口,并用下列代碼替換Form1.cs中的button1的Click事件對(duì)應(yīng)的處理代碼。下列代碼的作用是對(duì)遠(yuǎn)程計(jì)算機(jī)進(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. //連接到實(shí)際操作的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對(duì)象集合  
  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. //通過對(duì)產(chǎn)生的WMI的實(shí)例集合進(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. //獲得硬盤的合計(jì)空間  
  36. total = Convert.ToInt64 ( Return["Size"] ) /mb ;  
  37. listBox1.Items.Add ( " 總計(jì):"+ 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 + "出錯(cuò),出錯(cuò)信息為:" + ee.Message ,"出現(xiàn)錯(cuò)誤!" ) ;  
  45. }  
  46. }  

【編輯推薦】

  1. C#字符ASCII碼學(xué)習(xí)經(jīng)驗(yàn)
  2. C#數(shù)值類型之間的轉(zhuǎn)換概述
  3. 日期型數(shù)據(jù)轉(zhuǎn)換成C#長整型數(shù)據(jù)
  4. C#查看Excel對(duì)象模型分析
  5. C#日期型數(shù)據(jù)簡(jiǎn)單剖析
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-08-24 14:30:49

C# WMI封裝

2009-09-04 17:56:22

C#刪除數(shù)據(jù)

2009-08-28 11:16:51

C#日期型數(shù)

2009-09-04 17:23:21

C#數(shù)據(jù)庫連接對(duì)象

2009-09-07 14:29:52

C# ServiceC

2009-08-27 17:14:36

C# Socket

2009-09-01 16:29:03

QuickSort C

2009-09-01 11:04:59

C#調(diào)用擴(kuò)展方法

2009-09-11 11:09:36

C#引用類型

2009-09-02 18:14:33

C# WebClien

2009-09-11 11:17:04

C#引用類型

2009-08-27 16:29:18

C#動(dòng)態(tài)編譯

2009-09-04 17:49:34

C#連接數(shù)據(jù)庫

2009-08-28 10:44:46

C#字符數(shù)組轉(zhuǎn)換

2009-09-18 10:00:17

C#數(shù)組操作

2009-08-31 17:26:32

C#異常處理

2009-08-27 17:51:34

C#匿名方法

2009-09-03 16:58:49

C#內(nèi)存管理

2009-08-19 16:50:32

Visual C#C#語言特性

2009-09-02 13:36:58

C#實(shí)現(xiàn)多個(gè)接口
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)