在VB中使用WMI获取系统硬件和软件有关信息
简介:
WMI是英文Windows Management
Instrumentation的简写,它的功能主要是:访问本地主机的一些信息和服务,可以管理远程计算机(当然你必须要拥有足够的权限),比如:重启,关机,关闭进程,创建进程等。
实例如下:
´用WMI,先工程-引用 Microsoft WMI Scripting V1.1 Library
获取显卡/声卡/内存/操作系统的信息
声卡信息
Private Sub wmiSoundDeviceInfo()
Dim wmiObjSet As SWbemObjectSet
Dim obj As SWbemObject
Set wmiObjSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
InstancesOf("Win32_SoundDevice")
On Local Error Resume Next
For Each obj In wmiObjSet
MsgBox obj.ProductName
Next
End Sub
显卡信息
Private Sub wmiVideoControllerInfo()
Dim wmiObjSet As SWbemObjectSet
Dim obj As SWbemObject
Set wmiObjSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
InstancesOf("Win32_VideoController")
On Local Error Resume Next
For Each obj In wmiObjSet
MsgBox obj.VideoProcessor
Next
End Sub
内存信息
Private Sub wmiPhysicalMemoryInfo()
Dim wmiObjSet As SWbemObjectSet
Dim obj As SWbemObject
Set wmiObjSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
InstancesOf("Win32_PhysicalMemory")
On Local Error Resume Next
For Each objItem In wmiObjSet
Debug.Print "BankLabel: " & objItem.BankLabel
Debug.Print "Capacity: " & objItem.Capacity
Debug.Print "Caption: " & objItem.Caption
Debug.Print "CreationClassName: " & objItem.CreationClassName
Debug.Print "DataWidth: " & objItem.DataWidth
Debug.Print "Description: " & objItem.Description
Debug.Print "DeviceLocator: " & objItem.DeviceLocator
Debug.Print "FormFactor: " & objItem.FormFactor
Debug.Print "HotSwappable: " & objItem.HotSwappable
Debug.Print "InstallDate: " & objItem.InstallDate
Debug.Print "InterleaveDataDepth: " & objItem.InterleaveDataDepth
Debug.Print "InterleavePosition: " & objItem.InterleavePosition
Debug.Print "Manufacturer: " & objItem.Manufacturer
Debug.Print "MemoryType: " & objItem.MemoryType
Debug.Print "Model: " & objItem.Model
Debug.Print "Name: " & objItem.name
Debug.Print "OtherIdentifyingInfo: " & objItem.OtherIdentifyingInfo
Debug.Print "PartNumber: " & objItem.PartNumber
Debug.Print "PositionInRow: " & objItem.PositionInRow
Debug.Print "PoweredOn: " & objItem.PoweredOn
Debug.Print "Removable: " & objItem.Removable
Debug.Print "Replaceable: " & objItem.Replaceable
Debug.Print "SerialNumber: " & objItem.SerialNumber
Debug.Print "SKU: " & objItem.SKU
Debug.Print "Speed: " & objItem.Speed
Debug.Print "Status: " & objItem.Status
Debug.Print "Tag: " & objItem.Tag
Debug.Print "TotalWidth: " & objItem.TotalWidth
Debug.Print "TypeDetail: " & objItem.TypeDetail
Debug.Print "Version: " & objItem.Version
Next
End Sub
操作系统信息
Private Sub Command1_Click()
Dim wmiObjSet As SWbemObjectSet
Dim obj As SWbemObject
Dim msg As String
Dim dtb As String
Dim d As String
Dim t As String
Dim bias As Long
On Local Error Resume Next
Set wmiObjSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_OperatingSystem")
For Each obj In wmiObjSet
MsgBox "你当前使用的系统是 " & obj.Caption
Next
End Sub
说明:
大家可能会发现一个规律,实际上WMI对信息的提取都是使用了WIN32_类库名这样的规律,下列表格就是微软的操作系统各种硬件类的描述
其它WMI管理的类的信息在
可以找到,其中也还有部分示例代码
简单Win_32类表
Microsoft® Windows® classes give you the means to manipulate a variety of objects. The following table identifies the categories of Windows classes.
| Category | Description |
|---|---|
| Classes that represent hardware related objects. | |
| Classes that represent operating system related objects. | |
| Classes that represent software related objects. | |
| Classes used to manage WMI. | |
|
Classes that represent formatted and raw performance data.
|
he Cooling Devices subcategory groups classes that represent instrumentable fans, temperature probes, and refrigeration devices.
| Class | Description |
|---|---|
| Represents the properties of a fan device in the computer system. | |
| Represents the properties of a heat pipe cooling device. | |
| Represents the properties of a refrigeration device. | |
| Represents the properties of a temperature sensor (electronic thermometer). |
The Input Devices subcategory groups classes that represent keyboards and pointing devices.
| Class | Description |
|---|---|
| Represents a keyboard installed on a Windows system. | |
| Represents an input device used to point to and select regions on the display of a Windows computer system. |
Classes in the Mass Storage subcategory represent storage devices such as hard disk drives, CD-ROM drives, and tape drives.
| Class | Description |
|---|---|
| Represents the settings for the autocheck operation of a disk. | |
| Represents a CD-ROM drive on a Windows computer system. | |
| Represents a physical disk drive as seen by a computer running the Windows operating system. | |
| Manages the capabilities of a floppy disk drive. | |
| Represents any type of documentation or storage medium. | |
| Represents a tape drive on a Windows computer. |
The Motherboard, Controllers, and Ports subcategory groups classes that represent system devices. Examples include system memory, cache memory, and controllers.
| Class | Description |
|---|---|
| Represents the capabilities and management of a 1394 controller. | |
| Relates the high-speed serial bus (IEEE 1394 Firewire) Controller and the CIM_LogicalDevice instance connected to it. | |
| Relates a logical device to a system resource. | |
| Relates a processor and its cache memory. | |
| Represents a baseboard (also known as a motherboard or system board). | |
| Represents the attributes of the computer system´s basic input/output services (BIOS) that are installed on the computer. | |
| Represents a physical bus as seen by a Windows operating system. | |
| Represents cache memory (internal and external) on a computer system. | |
| Represents the hubs downstream from the universal serial bus (USB) controller. | |
| Relates a system bus and a logical device using the bus. | |
| Represents a device memory address on a Windows system. | |
| Relates a logical device and a setting that can be applied to it. | |
| Represents a direct memory aclearcase/" target="_blank" >ccess (DMA) channel on a Windows computer system. | |
| Represents the capabilities and management capacity of a floppy disk drive controller. | |
| Represents the capabilities of an Integrated Drive Electronics (IDE) controller device. | |
| Association class that relates an IDE controller and the logical device. | |
| Represents the capabilities and management of an infrared device. | |
| Represents an interrupt request line (IRQ) number on a Windows computer system. | |
| Represents the properties of the computer system memory array and mapped addresses. | |
| Relates a logical memory array and the physical memory array upon which it exists. | |
| Represents the properties of a computer system´s memory device along with it´s associated mapped addresses. | |
| Relates a memory device and the memory array in which it resides. | |
| Association class that relates a memory device and the physical memory on which it exists. | |
| Represents a device that contains the central components of the Windows computer system. | |
| Represents common adapter devices built into the motherboard (system board). | |
| Represents the properties of a parallel port on a Windows computer system. | |
| Manages the capabilities of a Personal Computer Memory Card Interface Adapter (PCMCIA) controller device. | |
| Represents a physical memory device located on a computer as available to the operating system. | |
| Represents details about the computer system´s physical memory. | |
| Relates an array of physical memory and its physical memory. | |
| Represents an association between logical devices and system resources. | |
| Relates a device (known to Configuration Manager as a PNPEntity), and the function it performs. | |
| Represents the properties of a Plug and Play device. | |
| Represents physical connection ports, such as DB-25 pin male, Centronics, and PS/2. | |
| Represents an I/O port on a Windows computer system. | |
| Represents a device capable of interpreting a sequence of machine instructions on a Windows computer system. | |
| Represents a small computer system interface (SCSI) controller on a Windows system. | |
| Relates a SCSI controller and the logical device (disk drive) connected to it. | |
| Represents a serial port on a Windows system. | |
| Represents the settings for data transmission on a Windows serial port. | |
| Relates a serial port and its configuration settings. | |
| Represents the capabilities and management of memory-related logical devices. | |
| Represents the properties of a sound device on a Windows computer system. | |
| Relates a computer system (including data such as startup properties, time zones, boot configurations, or administrative passwords) and a system BIOS (services, languages, system management properties). | |
| Relates a Plug and Play device on the Windows computer system and the driver that supports the Plug and Play device. | |
| Represents the properties associated with a physical system enclosure. | |
| Represents a system memory resource on a Windows system. | |
| Represents physical connection points including ports, motherboard slots and peripherals, and proprietary connections points. | |
| Manages the capabilities of a universal serial bus (USB) controller. | |
| Relates a USB controller and the CIM_LogicalDevice instances connected to it. | |
| Represents the management characteristics of a USB hub. |
The Networking Devices subcategory groups classes that represent the.network interface controller, its configurations, and its settings.
| Class | Description |
|---|---|
| Represents a network adapter on a Windows system. | |
| Represents the attributes and behaviors of a network adapter. The class is not guaranteed to be supported after the ratification of the Distributed Management Task Force (DMTF) CIM network specification. | |
| Relates a network adapter and its configuration settings. |
The Power subcategory groups classes that represent power supplies, batteries, and events related to these devices.
| Class | Description |
|---|---|
| Relates a logical device and the battery it is using. | |
| Represents a battery connected to the computer system. | |
| Represents the properties of a current monitoring sensor (ammeter). | |
| Represents the properties of a portable battery, such as one used for a notebook computer. | |
| Represents power management events resulting from power state changes. | |
| Represents the capabilities and management capacity of an uninterruptible power supply (UPS). | |
| Represents the properties of a voltage sensor (electronic voltmeter). |
The Printing subcategory groups classes that represent printers, printer configurations, and print jobs.
| Class | Description |
|---|---|
| Relates a printer to a printer driver. | |
| Represents a device connected to a Windows computer system that is capable of reproducing a visual image on a medium. | |
| Defines the configuration for a printer device. | |
| Relates a printer and the local device to which the printer is connected. | |
| Represents the drivers for a Win32_Printer instance. | |
| Relates a local printer and its driver file (not the driver itself). | |
| Relates a printer and its configuration settings. | |
| Represents a print job generated by a Windows application. | |
| Represents a TCP/IP service access point. |
The Telephony subcategory groups classes that represent "plain old telephone" modem devices and their associated serial connections.
| Class | Description |
|---|---|
| Represents the services and characteristics of a Plain Old Telephone Service (POTS) modem on a Windows system. | |
| Relates a modem and the serial port the modem uses. |
The Video and Monitors subcategory groups classes that represent monitors, video cards, and their associated settings.
| Class | Description |
|---|---|
| Represents the type of monitor or display device attached to the computer system. | |
| Represents configuration information for the display device on a Windows system. This class is obsolete. In place of this class, use the properties in the , Win32_DesktopMonitor, and classes. | |
| Represents the video adapter configuration information of a Windows system. This class is obsolete. In place of this class, use the properties in the Win32_VideoController, Win32_DesktopMonitor, and CIM_VideoControllerResolution classes. | |
| This class has been eliminated from Windows XP and later; attempts to use it will generate a fatal error. In place of this class, use the properties contained in the Win32_VideoController, Win32_DesktopMonitor, and CIM_VideoControllerResolution classes. | |
| Represents the capabilities and management capacity of the video controller on a Windows computer system. | |
| Relates a video controller and video settings that can be applied to it. |
而每一个类都有对应的数据结构如
显卡
class Win32_VideoController : CIM_PCVideoController
{
uint16 [];
string ;
string ;
uint32 ;
uint16 ;
string [];
string ;
uint32 ;
uint32 ;
boolean ;
string ;
uint32 ;
uint32 ;
uint64 ;
uint32 ;
uint32 ;
uint32 ;
uint16 ;
uint32 ;
string ;
string ;
uint32 ;
uint32 ;
datetime ;
string ;
boolean ;
string ;
uint32 ;
uint32 ;
string ;
string ;
datetime ;
string ;
uint32 ;
uint32 ;
uint32 ;
uint32 ;
uint32 ;
boolean ;
string ;
uint16 ;
uint32 ;
string ;
uint16 [];
boolean ;
uint16 ;
uint32 ;
uint32 ;
string ;
uint16 ;
string ;
string ;
uint32 ;
datetime ;
uint16 ;
uint16 ;
uint16 ;
string ;
string ;
};
声卡等
class Win32_SoundDevice : CIM_LogicalDevice
{
uint16 ;
string ;
uint32 ;
boolean ;
string ;
string ;
string ;
uint16 ;
boolean ;
string ;
datetime ;
uint32 ;
string ;
uint32 ;
string ;
string ;
uint16 [];
boolean ;
string ;
string ;
uint16 ;
string ;
string ;
};
class Win32_PrintJob : CIM_Job
{
string ;
string ;
string ;
string ;
string ;
datetime ;
string ;
datetime ;
uint32 ;
string ;
string ;
string ;
string ;
uint32 ;
string ;
string ;
uint32 ;
uint32 ;
datetime ;
string ;
uint32 ;
datetime ;
uint32 ;
datetime ;
};
如
Set wmiObjSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
InstancesOf("Win32_PrintJob")
可以获得打印任务列表等信息
对于VB来讲获得系统硬件和软件信息大都使用API,现在使用WMI可以快速的实现我们的目标.如获取驱动器/显卡/共享信息等等都会变得方便和有效