• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

VB中使用WMI获取系统硬件和软件有关信息

发布: 2007-7-01 21:48 | 作者: admin | 来源: | 查看: 57次 | 进入软件测试论坛讨论

领测软件测试网

在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/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网