在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类表
Win32 Classes
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.
|
硬件类
Computer System Hardware Classes
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). |
Input Device Classes
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. |
Mass Storage Classes
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. |
Motherboard, Controller, and Port Classes
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 access (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. |
Networking Device Classes
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. |
Power Classes
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). |
Printing Classes
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. |
Telephony Classes
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. |
Video and Monitor Classes
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可以快速的实现我们的目标.如获取驱动器/显卡/共享信息等等都会变得方便和有效
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/