Windows Management Instrumentation(WMI) 之 Win32 類

來源:互聯網
上載者:User

  有個朋友在處理列印時,獲得印表機資訊和列印任務隊列時遇到了點麻煩。本想用API實現,回去粗略研究了下 System.Management 命名空間,發現這裡面有相當多有用的功能,省去了調用API的麻煩。
WMI中的Win32類監控和管理系統的硬體和特徵資訊,這些類一般在root/cimv2 WMI 命名空間中。
Win32類主要有一下幾類:
  ·Computer System Hardware Classes

  ·Operating System Classes

  ·Installed Applications Classes

  ·WMI Service Management Classes

  ·Performance Counters Classes

  ·Security Descriptor Helper Class

下面列出了常用資訊的類:

Win32_Processor                        // CPU 處理器Win32_PhysicalMemory                   // 實體記憶體Win32_Keyboard                         // 鍵盤Win32_PointingDevice                   // 點輸入裝置,如滑鼠Win32_DiskDrive                        // 硬碟Win32_CDROMDrive                       // 光碟片磁碟機Win32_BaseBoard                        // 主板Win32_BIOS                             // BIOS 晶片Win32_ParallelPort                     // 並口Win32_SerialPort                       // 串口Win32_SoundDevice                      // 多媒體設定Win32_USBController                    // USB 控制器Win32_NetworkAdapter                   // 網路介面卡Win32_NetworkAdapterConfiguration      // 網路介面卡設定Win32_Printer                          // 印表機Win32_PrinterConfiguration             // 印表機設定Win32_PrintJob                         // 印表機任務Win32_TCPIPPrinterPort                 // 印表機連接埠Win32_POTSModem                        // MODEM Win32_POTSModemToSerialPort            // MODEM 連接埠Win32_DesktopMonitor                   // 顯示器Win32_VideoController                  // 顯卡細節。Win32_VideoSettings                    // 顯卡支援的顯示模式。Win32_TimeZone                         // 時區Win32_SystemDriver                     // 驅動程式Win32_DiskPartition                    // 磁碟分割Win32_LogicalDisk                      // 邏輯磁碟Win32_LogicalMemoryConfiguration       // 邏輯記憶體配置Win32_PageFile                         // 系統頁檔案資訊Win32_PageFileSetting                  // 頁檔案設定Win32_BootConfiguration                // 系統啟動配置Win32_OperatingSystem                  // 作業系統資訊Win32_StartupCommand                   // 系統自動啟動程式Win32_Service                          // 系統安裝的服務Win32_Group                            // 系統管理組Win32_GroupUser                        // 系統組帳號Win32_UserAccount                      // 使用者帳號Win32_Process                          // 系統進程Win32_Thread                           // 系統線程Win32_Share                            // 共用Win32_NetworkClient                    // 已安裝的網路用戶端Win32_NetworkProtocol                  // 已安裝的網路通訊協定

以獲得列印工作為例示範一下其使用方法:
Win32_PrintJob類的屬性欄位為:

class Win32_PrintJob : CIM_Job{    string Caption;    string Color;    string DataType;    string Description;    string Document;    string DriverName;    DateTime ElapsedTime;    string HostPrintQueue;    DateTime InstallDate;    uint JobId;    string JobStatus;    string Name;    string Notify;    string Owner;    uint PagesPrinted;    uint PaperLength;    string PaperSize;    uint PaperWidth;    string Parameters;    string PrintProcessor;    uint Priority;    uint Size;    DateTime StartTime;    string Status;    uint StatusMask;    DateTime TimeSubmitted;    uint TotalPages;    DateTime UntilTime;

}

該類的方法有:

Pause();
Resume();

1.SQL語句檢索方法:

using System;using System.Management; class TestWMI{    public static void Main()    {        ManagementObjectSearcher s = new ManagementObjectSearcher("SELECT * FROM Win32_PrintJob");        foreach (ManagementObject m in s.Get())        {            foreach (PropertyData p in m.Properties)            {                Console.WriteLine(p.Name + "--------" + p.Value);            }        }        Console.ReadKey();    }}

2.執行個體化ManagementClass,獲得ManagementObjectCollection方法:

using System;using System.Management; class TestWMI{    public static void Main()    {        ManagementClass c = new ManagementClass("Win32_PrintJob");        ManagementObjectCollection co = c.GetInstances();        foreach (ManagementObject m in co)        {            foreach (PropertyData p in m.Properties)            {                Console.WriteLine(p.Name + "--------" + p.Value);            }        }    }}

.NET對Win32 WMI進行了精彩的封裝,.NET 中 WMI 的編程模型出奇的一致,大大減少了編碼量和編程難度。
WMI Win32類的完整資訊及詳細列表請參考MSDN:
http://msdn2.microsoft.com/en-us/library/aa394084(VS.85).aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.