利用WMI获取系统信息

出处:www.examlink.com 作者:小罗 日期:2007年01月24日 14时30分
 WMI(Windows Management Instrumentation)技术是微软提供的Windows下的系统管理工具。通过该工具可以在本地或者管理客户端系统中几乎一切的信息。很多专业的网络管理工具都是基于WMI开发的。该工具在Win2000以及WinNT下是标准工具,在Win9X下是扩展安装选项。本文将介绍如何通过VB编程来访问WMI对象的编程。
   首先来看一个简单的通过WMI获取系统信息的范例,这个范例通过WMI对象获得系统中运行的的进程:
Function Enum1() As String    Dim WMI
    Set WMI = GetObject('WinMgmts:')    Set objs = WMI.InstancesOf('Win32_Process')  
    For Each obj In objs        Enum1 = Enum1 + obj.Description + Chr(13) + Chr(10)    NextEnd Function  
    在上面的代码中,首先通过  GetObject('WinMgmts:')获得WMI对象,在WMI对象下有很多的子项,在这里我们通过WMI.InstancesOf('Win32_Process')获得系统中所有的进程列表子项。
    下面看一个完整的访问WMI对象的范例,这个范例获得计算机的信息。    建立一个新工程,在Form1中添加一个TextBox控件以及一个CommandButton控件,在CommandButton的Click事件中写入以下的代码:

Private Sub Command1_Click()    Dim s, System, item    Dim i As Integer
    Set System = GetObject('winmgmts:').InstancesOf('Win32_ComputerSystem')    For Each item In System        'List1.AddItem item.cputype        s = 'Computer Info' & vbCrLf        s = s & '***********************' & vbCrLf        s = s & '计算机名称: ' & item.name & vbCrLf
        s = s & '状态: ' & item.Status & vbCrLf
        s = s & '类型: ' & item.SystemType & vbCrLf
        s = s & '生产厂家: ' & item.Manufacturer & vbCrLf
        s = s & '型号: ' & item.Model & vbCrLf
        s = s & '内存: ~' & item.totalPhysicalMemory \ 1024000 & 'mb' & vbCrLf
        s = s & '域: ' & item.domain & vbCrLf
        's = s & '工作组' & item.Workgroup & vbCrLf '获得工作组和域的选项不能同时用  
        s = s & '当前用户: ' & item.username & vbCrLf
        s = s & '启动状态' & item.BootupState & vbCrLf
        s = s & '该计算机属于' & item.PrimaryOwnerName & vbCrLf
        s = s & '系统类型' & item.CreationClassName & vbCrLf
        s = s & '计算机类类型' & item.Description & vbCrLf

        For i = 0 To 1  '这里假设安装了两个系统  
            s = s & Chr(5) & '启动选项' & i & ' :' & item.SystemStartupOptions(i) _  
                & vbCrLf  
        Next i  
    Next
    Text1.Text = s  
End Sub  
    运行程序,点击Command1,在textBox中就可以显示计算机的信息。
    在上面的代码中,程序通过GetObject('winmgmts:')获得WMI对象,然后获得下面的
Win32_ComputerSystem子项并通过访问Win32_ComputerSystem对象中的分项获得系统中的信息。
最后更新时间:2008-05-28 11:40:53
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程