此文章为本站(Lob.cn)乐博网原创,可以自由转载和传播,但希望能保留本站的作者和信息来源,谢谢!如果大家对此问题或者关于VB.Net调用WMI实现系统管理的话题感兴趣,就一起加入讨论把他做得更完善吧!
VB.Net调用WMI可以实现系统管理和系统信息查询等。WMI全称为Windows Management Instrumentation,利用WMI我们可以实现很多系统管理的功能,msdn在.Net Framework类库中对此描述比较简单(因为早期WMI相关专题有所较详尽描述,故类库中未再详细解说与演示) 乐博网将发布一系列相关文章及实例分析帮助大家更深刻了解它。
开发环境: VB2005 Windows2003
本实例需要在菜单栏中的“项目”-“ 添加引用” -“ System.Management”
并在实例代码中导入引用的项目和程序集中定义的命名空间或编程元素 即: Imports System.Management
VB.Net查询显示器属性信息的实例
代码如下:
Private Sub Lobdotcn()
Dim Lob_Searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_DesktopMonitor") For Each Obj_Query As ManagementObject In Lob_Searcher.Get() ListBox1.Items.Add("乐博网LOB.Cn VB.Net爱好者的组织") ListBox1.Items.Add("Availability: " & Obj_Query("Availability")) ListBox1.Items.Add("Bandwidth: " & Obj_Query("Bandwidth")) ListBox1.Items.Add("Caption: " & Obj_Query("Caption")) ListBox1.Items.Add("ConfigManagerErrorCode: " & Obj_Query("ConfigManagerErrorCode")) ListBox1.Items.Add("ConfigManagerUserConfig: " & Obj_Query("ConfigManagerUserConfig")) ListBox1.Items.Add("CreationClassName: " & Obj_Query("CreationClassName")) ListBox1.Items.Add("Description: " & Obj_Query("Description")) ListBox1.Items.Add("DeviceID: " & Obj_Query("DeviceID")) ListBox1.Items.Add("DisplayType: " & Obj_Query("DisplayType")) ListBox1.Items.Add("ErrorCleared: " & Obj_Query("ErrorCleared")) ListBox1.Items.Add("ErrorDescription: " & Obj_Query("ErrorDescription")) ListBox1.Items.Add("InstallDate: " & Obj_Query("InstallDate")) ListBox1.Items.Add("IsLocked: " & Obj_Query("IsLocked")) ListBox1.Items.Add("LastErrorCode: " & Obj_Query("LastErrorCode")) ListBox1.Items.Add("MonitorManufacturer: " & Obj_Query("MonitorManufacturer")) ListBox1.Items.Add("MonitorType: " & Obj_Query("MonitorType")) ListBox1.Items.Add("Name: " & Obj_Query("Name")) ListBox1.Items.Add("PixelsPerXLogicalInch: " & Obj_Query("PixelsPerXLogicalInch")) ListBox1.Items.Add("PixelsPerYLogicalInch: " & Obj_Query("PixelsPerYLogicalInch")) ListBox1.Items.Add("PNPDeviceID: " & Obj_Query("PNPDeviceID")) If Obj_Query("PowerManagementCapabilities") IsNot Nothing Then Dim arrPowerManagementCapabilities As UInt16() arrPowerManagementCapabilities = Obj_Query("Capabilities") For Each arrValue As UInt16 In arrPowerManagementCapabilities ListBox1.Items.Add("arrPowerManagementCapabilities(): " & arrValue) Next End If ListBox1.Items.Add("PowerManagementSupported: " & Obj_Query("PowerManagementSupported")) ListBox1.Items.Add("ScreenHeight: " & Obj_Query("ScreenHeight")) ListBox1.Items.Add("ScreenWidth: " & Obj_Query("ScreenWidth")) ListBox1.Items.Add("Status: " & Obj_Query("Status")) ListBox1.Items.Add("StatusInfo: " & Obj_Query("StatusInfo")) ListBox1.Items.Add("SystemCreationClassName: " & Obj_Query("SystemCreationClassName")) ListBox1.Items.Add("SystemName: " & Obj_Query("SystemName")) Next
End Sub
属性的说明:
uint16 Availability; uint32 Bandwidth; string Caption; uint32 ConfigManagerErrorCode; boolean ConfigManagerUserConfig; string CreationClassName; string Description; string DeviceID; uint16 DisplayType; boolean ErrorCleared; string ErrorDescription; datetime InstallDate; boolean IsLocked; uint32 LastErrorCode; string MonitorManufacturer; string MonitorType; string Name; uint32 PixelsPerXLogicalInch; uint32 PixelsPerYLogicalInch; string PNPDeviceID; uint16 PowerManagementCapabilities[]; boolean PowerManagementSupported; uint32 ScreenHeight; uint32 ScreenWidth; string Status; uint16 StatusInfo; string SystemCreationClassName; string SystemName;
- Availability
- Data type: uint16
Access type: Read-only
Availability and status of the device. Inherited from CIM_LogicalDevice.
Value |
Meaning |
1 0x1 |
Other |
2 0x2 |
Unknown |
3 0x3 |
Running or Full Power |
4 0x4 |
Warning |
5 0x5 |
In Test |
6 0x6 |
Not Applicable |
7 0x7 |
Power Off |
8 0x8 |
Off Line |
9 0x9 |
Off Duty |
10 0xA |
Degraded |
11 0xB |
Not Installed |
12 0xC |
Install Error |
13 0xD |
Power Save - Unknown
The device is known to be in a power save mode, but its exact status is unknown. |
14 0xE |
Power Save - Low Power Mode
The device is in a power save state but still functioning, and may exhibit degraded performance. |
15 0xF |
Power Save - Standby
The device is not functioning, but could be brought to full power quickly. |
16 0x10 |
Power Cycle |
17 0x11 |
Power Save - Warning
The device is in a warning state, though also in a power save mode. |
- Bandwidth
- Data type: uint32
Access type: Read-only
Monitor's bandwidth in megahertz. If unknown, enter 0 (zero). This property is inherited from CIM_DesktopMonitor.
- Caption
- Data type: string
Access type: Read-only
Short description (one-line string) of the object. This property is inherited from CIM_ManagedSystemElement.
- ConfigManagerErrorCode
- Data type: uint32
Access type: Read-only
Win32 Configuration Manager error code.
Value |
Meaning |
0 0x0 |
Device is working properly. |
1 0x1 |
Device is not configured correctly. |
2 0x2 |
Windows cannot load the driver for this device. |
3 0x3 |
Driver for this device might be corrupted, or the system may be low on memory or other resources. |
4 0x4 |
Device is not working properly. One of its drivers or the registry might be corrupted. |
5 0x5 |
Driver for the device requires a resource that Windows cannot manage. |
6 0x6 |
Boot configuration for the device conflicts with other devices. |
7 0x7 |
Cannot filter. |
8 0x8 |
Driver loader for the device is missing. |
9 0x9 |
Device is not working properly. The controlling firmware is incorrectly reporting the resources for the device. |
10 0xA |
Device cannot start. |
11 0xB |
Device failed. |
12 0xC |
Device cannot find enough free resources to use. |
13 0xD |
Windows cannot verify the device's resources. |
14 0xE |
Device cannot work properly until the computer is restarted. |
15 0xF |
Device is not working properly due to a possible re-enumeration problem. |
16 0x10 |
Windows cannot identify all of the resources that the device uses. |
17 0x11 |
Device is requesting an unknown resource type. |
18 0x12 |
Device drivers must be reinstalled. |
19 0x13 |
Failure using the VxD loader. |
20 0x14 |
Registry might be corrupted. |
21 0x15 |
System failure. If changing the device driver is ineffective, see the hardware documentation. Windows is removing the device. |
22 0x16 |
Device is disabled. |
23 0x17 |
System failure. If changing the device driver is ineffective, see the hardware documentation. |
24 0x18 |
Device is not present, not working properly, or does not have all of its drivers installed. |
25 0x19 |
Windows is still setting up the device. |
26 0x1A |
Windows is still setting up the device. |
27 0x1B |
Device does not have valid log configuration. |
28 0x1C |
Device drivers are not installed. |
29 0x1D |
Device is disabled. The device firmware did not provide the required resources. |
30 0x1E |
Device is using an IRQ resource that another device is using. |
31 0x1F |
Device is not working properly. Windows cannot load the required device drivers. |
- ConfigManagerUserConfig
- Data type: boolean
Access type: Read-only
If TRUE, the device is using a user-defined configuration. This property is inherited from CIM_LogicalDevice.
- CreationClassName
- Data type: string
Access type: Read-only Qualifiers: Key, MaxLen(256)
Name of the first concrete class to appear in the inheritance chain used in the creation of an instance. When used with the other key properties of the class, the property allows all instances of this class and its subclasses to be uniquely identified. This property is inherited from CIM_LogicalDevice.
- Description
- Data type: string
Access type: Read-only
Description of the object. This property is inherited from CIM_ManagedSystemElement.
- DeviceID
- Data type: string
Access type: Read-only
Unique identifier of a desktop monitor. This property is inherited from CIM_LogicalDevice.
- DisplayType
- Data type: uint16
Access type: Read-only
Type of desktop monitor or CRT. This property is inherited from CIM_DesktopMonitor.
Value |
Meaning |
0 |
Unknown |
1 |
Other |
2 |
Multiscan Color |
3 |
Multiscan Monochrome |
4 |
Fixed Frequency Color |
5 |
Fixed Frequency Monochrome |
- ErrorCleared
- Data type: boolean
Access type: Read-only
If TRUE, the error reported in LastErrorCode is now cleared. This property is inherited from CIM_LogicalDevice.
- ErrorDescription
- Data type: string
Access type: Read-only
Free-form string supplying more information about the error recorded in LastErrorCode, and information on any corrective actions that may be taken. This property is inherited from CIM_LogicalDevice.
- InstallDate
- Data type: datetime
Access type: Read-only
Date and time the object was installed. This property does not need a value to indicate that the object is installed. This property is inherited from CIM_ManagedSystemElement.
- IsLocked
- Data type: boolean
Access type: Read-only
If TRUE, the device is locked, preventing user input or output. This property is inherited from CIM_UserDevice.
- LastErrorCode
- Data type: uint32
Access type: Read-only
Last error code reported by the logical device. This property is inherited from CIM_LogicalDevice.
- MonitorManufacturer
- Data type: string
Access type: Read-only
Name of the monitor manufacturer.
Example: "NEC"
- MonitorType
- Data type: string
Access type: Read-only
Type of monitor.
Example: "NEC 5FGp"
- Name
- Data type: string
Access type: Read-only
Label by which the object is known. When subclassed, the property can be overridden to be a key property. This property is inherited from CIM_ManagedSystemElement.
- PixelsPerXLogicalInch
- Data type: uint32
Access type: Read-only Qualifiers: Units(Pixels per Logical Inch)
Resolution along the X axis (horizontal direction) of the monitor.
- PixelsPerYLogicalInch
- Data type: uint32
Access type: Read-only Qualifiers: Units(Pixels per Logical Inch)
Resolution along the Y axis (vertical direction) of the monitor.
- PNPDeviceID
- Data type: string
Access type: Read-only
Windows Plug and Play device identifier of the logical device. This property is inherited from CIM_LogicalDevice.
Example: "*PNP030b"
- PowerManagementCapabilities
- Data type: uint16 array
Access type: Read-only
Array of the specific power-related capabilities of a logical device. This property is inherited from CIM_LogicalDevice.
Value |
Meaning |
0 0x0 |
Unknown |
1 0x1 |
Not Supported |
2 0x2 |
Disabled |
3 0x3 |
Enabled
The power management features are currently enabled but the exact feature set is unknown or the information is unavailable. |
4 0x4 |
Power Saving Modes Entered Automatically
The device can change its power state based on usage or other criteria. |
5 0x5 |
Power State Settable
The SetPowerState method is supported. This method is found on the parent CIM_LogicalDevice class and can be implemented. For more information, see Designing Managed Object Format (MOF) Classes. |
6 0x6 |
Power Cycling Supported
The SetPowerState method can be invoked with the PowerState parameter set to 5 (Power Cycle). |
7 0x7 |
Timed Power-On Supported
The SetPowerState method can be invoked with the PowerState parameter set to 5 (Power Cycle) and Time set to a specific date and time, or interval, for power-on. |
- PowerManagementSupported
- Data type: boolean
Access type: Read-only
If TRUE, the device can be power-managed (can be put into suspend mode, and so on). The property does not indicate that power management features are currently enabled, only that the logical device is capable of power management. This property is inherited from CIM_LogicalDevice.
- ScreenHeight
- Data type: uint32
Access type: Read-only
Logical height of the display in screen coordinates. This property is inherited from CIM_DesktopMonitor.
- ScreenWidth
- Data type: uint32
Access type: Read-only
Logical width of the display in screen coordinates. This property is inherited from CIM_DesktopMonitor.
- Status
- Data type: string
Access type: Read-only
Current status of the object. Various operational and nonoperational statuses can be defined. Operational statuses include: "OK", "Degraded", and "Pred Fail" (an element, such as a SMART-enabled hard disk drive, may be functioning properly but predicting a failure in the near future). Nonoperational statuses include: "Error", "Starting", "Stopping", and "Service". The latter, "Service", could apply during mirror-resilvering of a disk, reload of a user permissions list, or other administrative work. Not all such work is online, yet the managed element is neither "OK" nor in one of the other states. This property is inherited from CIM_ManagedSystemElement.
The values are:
"OK"
"Error"
"Degraded"
"Unknown"
"Pred Fail"
"Starting"
"Stopping"
"Service"
- StatusInfo
- Data type: uint16
Access type: Read-only
State of the logical device. If this property does not apply to the logical device, the value 5 (Not Applicable) should be used. This property is inherited from CIM_LogicalDevice.
Value |
Meaning |
1 0x1 |
Other |
2 0x2 |
Unknown |
3 0x3 |
Enabled |
4 0x4 |
Disabled |
5 0x5 |
Not Applicable |
- SystemCreationClassName
- Data type: string
Access type: Read-only
Value of the scoping computer's CreationClassName property. This property is inherited from CIM_LogicalDevice.
- SystemName
- Data type: string
Access type: Read-only
Name of the scoping system. This property is inherited from CIM_LogicalDevice.
|