偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C# WMI封裝學(xué)習(xí)筆記

開(kāi)發(fā) 后端
這里介紹我們利用.Net框架System.Management 命名空間所提供的C# WMI封裝非常簡(jiǎn)單的實(shí)現(xiàn)了獲取邏輯驅(qū)動(dòng)器的詳細(xì)信息,除了上述信息我們還可以輕松的獲取Windows資源大部分信息。

C# WMI封裝

在編寫(xiě)某些Windows管理應(yīng)用程序時(shí),能夠從自定義的驅(qū)動(dòng)器選擇列表框中進(jìn)行選擇無(wú)疑是非常專業(yè)的,使用Delphi或者C++的早期版本時(shí)我們都必須使用Win32所提供的許多關(guān)于獲取磁盤(pán)信息的API函數(shù)來(lái)分別獲取像卷標(biāo)、序列號(hào)以及剩余空間等信息,現(xiàn)在我們將使用.Net框架和WMI(Windows Management Instrumentation - Windows 管理規(guī)范 )來(lái)實(shí)現(xiàn)上述功能。

若僅簡(jiǎn)單獲取邏輯驅(qū)動(dòng)器的名稱列表我們使用.Net框架的Environment.GetLogicalDrives即可,但是若想獲得更多關(guān)于磁盤(pán)驅(qū)動(dòng)器的信息我們可以使用.Net框架下的System.Management 命名空間所提供的類和委托等對(duì)大量管理信息和管理事件的集合進(jìn)行訪問(wèn),這些信息和事件都與 WMI有關(guān),該命名空間下的類實(shí)際上也是對(duì)WMI的一種封裝,應(yīng)用程序和服務(wù)可以使用從 ManagementObjectSearcher 和 ManagementQuery 派生的類,查詢感興趣的管理信息,例如在磁盤(pán)上還剩多少可用空間、當(dāng)前 CPU 利用率是多少、某一應(yīng)用程序正連接到哪一數(shù)據(jù)庫(kù)等等,現(xiàn)在我們就以 C# 語(yǔ)言編寫(xiě)獲取詳細(xì)的邏輯驅(qū)動(dòng)器信息的示例來(lái)展示.Net框架System.Management 命名空間的相關(guān)類和WMI編程。

WMI最初是內(nèi)置在 Windows 2000、Windows XP 和 Windows Server 2003 系列操作系統(tǒng)中核心的管理支持技術(shù),目前WMI 已經(jīng)是一種規(guī)范和基礎(chǔ)結(jié)構(gòu),通過(guò)它可以訪問(wèn)、配置、管理和監(jiān)視幾乎所有的 Windows 資源例如磁盤(pán)、事件日志、文件、文件夾、文件系統(tǒng)、網(wǎng)絡(luò)組件、操作系統(tǒng)設(shè)置、性能數(shù)據(jù)、打印機(jī)、進(jìn)程、注冊(cè)表設(shè)置、安全性、服務(wù)、共享、用戶、組等等。在 WMI 之前,能夠以編程方式訪問(wèn) Windows 資源的惟一方法就是通過(guò) Win32 API,現(xiàn)在我們除了使用WMI 腳本管理任何通過(guò) WMI 公開(kāi)的 Windows 資源外,還可以通過(guò).Net框架對(duì)于C# WMI封裝的System.Management 命名空間來(lái)輕松實(shí)現(xiàn)。

WQL查詢語(yǔ)言是 SQL 的一個(gè)子集,查詢通過(guò)包含以下內(nèi)容限制返回的數(shù)據(jù)量1、SELECT 子句,指定只返回某些屬性的數(shù)據(jù);2、WHERE 子句,指定要返回的實(shí)例。Win32_LogicalDisk類在默認(rèn)的本地MSDN里是無(wú)法找到的,只有在聯(lián)機(jī)的MSDN里,Win32 and COM Development下的WMI下才能找到,同樣可以使用的類還有很多很多,包含登錄用戶信息的Win32_Account類、包含本地和共享打印機(jī)信息的Win32_PrinterShare類等等。Win32_LogicalDisk里所包含的驅(qū)動(dòng)器屬性相當(dāng)豐富。

然后使用該指定的SelectQuery查詢創(chuàng)建ManagementObjectSearcher實(shí)例,此類是用于檢索管理信息的較為常用的入口點(diǎn)之一,實(shí)例創(chuàng)建結(jié)束,我們需要調(diào)用Get方法執(zhí)行查詢以便檢索管理對(duì)象的集合,當(dāng)調(diào)用該方法時(shí),ManagementObjectSearcher 在指定的范圍內(nèi)執(zhí)行給定的查詢,并返回與 ManagementObjectCollection 中的查詢匹配的管理對(duì)象的集合,這是就可以在一個(gè)循環(huán)中遍歷集合中的所有對(duì)象,并獲取我們所感興趣的對(duì)象的屬性。

  1. SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk");  
  2. ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);  
  3.  
  4. int i=0;  
  5. foreach (ManagementObject disk in searcher.Get()) {  
  6. //獲取驅(qū)動(dòng)器盤(pán)符  
  7. listView1.Items.Add(disk["Name"].ToString());  

我們利用.Net框架System.Management 命名空間所提供的C# WMI封裝非常簡(jiǎn)單的實(shí)現(xiàn)了獲取邏輯驅(qū)動(dòng)器的詳細(xì)信息,除了上述信息我們還可以輕松的獲取Windows資源大部分信息,比起使用Win32API要更加簡(jiǎn)單和有效。該示例程序在Windows XP SP2 + Visual Studio 2005 下編譯和調(diào)試通過(guò)。

【編輯推薦】

  1. C#字符串操作步驟
  2. C#集成開(kāi)發(fā)環(huán)境淺析
  3. Visual C# .NET應(yīng)用程序
  4. C# TimeLabel控件詳解
  5. C#復(fù)合控件開(kāi)發(fā)技術(shù)
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-08-12 09:28:36

C# WiteOne

2009-08-13 18:21:52

C#學(xué)習(xí)筆記

2009-08-20 15:02:57

C# If語(yǔ)句

2009-08-12 15:50:40

C# ListBox

2009-08-28 15:32:39

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

2009-08-26 10:48:44

C# SQL命令

2009-08-31 15:27:33

C# TreeView

2009-08-24 15:46:46

C# SmartPho

2009-08-25 15:26:03

C#調(diào)用ImOK

2009-08-21 17:53:28

C#查詢結(jié)果

2009-08-12 10:46:54

C#命名空間

2009-08-19 15:59:24

C#參數(shù)類型

2009-09-01 11:28:32

C#使用函數(shù)重載

2009-08-14 17:38:08

C#改寫(xiě)方法

2009-08-14 15:54:12

C#編程語(yǔ)言

2009-08-27 16:53:01

C#委托C#事件

2009-08-13 11:10:32

C#基礎(chǔ)概念

2009-08-13 10:47:29

C#創(chuàng)建驗(yàn)證碼

2009-09-04 10:49:19

C#隱式轉(zhuǎn)換

2009-08-26 16:17:23

C# Lambda表達(dá)
點(diǎn)贊
收藏

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