利用wmi获取系统信息

利用wmi获取系统信息

ID:30409957

大小:84.24 KB

页数:11页

时间:2018-12-29

利用wmi获取系统信息_第1页
利用wmi获取系统信息_第2页
利用wmi获取系统信息_第3页
利用wmi获取系统信息_第4页
利用wmi获取系统信息_第5页
资源描述:

《利用wmi获取系统信息》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、利用WMI获取系统信息WMI(WindowsManagementInstrumentation)技术是微软提供的Windows下的系统管理工具。通过该工具可以在本地或者管理客户端系统中几乎一切的信息。很多专业的网络管理工具都是基于WMI开发的。该工具在Win2000以及WinNT下是标准工具,在Win9X下是扩展安装选项。本文将介绍如何通过VB编程来访问WMI对象的编程。首先来看一个简单的通过WMI获取系统信息的范例,这个范例通过WMI对象获得系统中运行的的进程:FunctionEnum1()AsStringDimWMISetWMI=GetObje

2、ct("WinMgmts:")Setobjs=WMI.InstancesOf("Win32_Process")ForEachobjInobjsEnum1=Enum1+obj.Description+Chr(13)+Chr(10)NextEndFunction在上面的代码中,首先通过GetObject("WinMgmts:")获得WMI对象,在WMI对象下有很多的子项,在这里我们通过WMI.InstancesOf("Win32_Process")获得系统中所有的进程列表子项。下面看一个完整的访问WMI对象的范例,这个范例获得计算机的信息。建立一个新工

3、程,在Form1中添加一个TextBox控件以及一个CommandButton控件,在CommandButton的Click事件中写入以下的代码:PrivateSubCommand1_Click()Dims,System,itemDimiAsIntegerSetSystem=GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem")ForEachitemInSystem'List1.AddItemitem.cputypes="ComputerInfo"&vbCrLfs=s&"*"&vbCrL

4、fs=s&"计算机名称:"&item.name&vbCrLfs=s&"状态:"&item.Status&vbCrLfs=s&"类型:"&item.SystemType&vbCrLfs=s&"生产厂家:"&item.Manufacturer&vbCrLfs=s&"型号:"&item.Model&vbCrLfs=s&"内存:~"&item.totalPhysicalMemory24000&"mb"&vbCrLfs=s&"域:"&item.domain&vbCrLf's=s&"工作组"&item.Workgroup&vbCrLf'获得工作组和域的选项不能

5、同时用s=s&"当前用户:"&item.username&vbCrLfs=s&"启动状态"&item.BootupState&vbCrLfs=s&"该计算机属于"&item.PrimaryOwnerName&vbCrLfs=s&"系统类型"&item.CreationClassName&vbCrLfs=s&"计算机类类型"&item.Description&vbCrLfFori=0To1'这里假设安装了两个系统s=s&Chr(5)&"启动选项"&i&":"&item.SystemStartupOptions(i)_&vbCrLfNextiNextT

6、ext1.Text=sEndSub运行程序,点击Command1,在textBox中就可以显示计算机的信息。在上面的代码中,程序通过GetObject("winmgmts:")获得WMI对象,然后获得下面的Win32_ComputerSystem子项并通过访问Win32_ComputerSystem对象中的分项获得系统中的信息。需要说明的是,并不是所有的系统都支持WMI,在有些系统中无法显示生产厂家等信息。现在的计算机以及网络组成十分复杂。例如系统硬件方面就有主板、硬盘、网卡.。软件方面有操作系统、系统中安装的软件、正在运行的进程等等。网络方面有域

7、、工作组等等。利用WMI可以访问上面的全部信息,但是如果向上面一样的利用分项来访问的话会很麻烦。为此,WMI提供了一种类似SQL语句的查询语句,可以通过查询语句获得WMI对象下的子项。下面是一个遍历系统中安装的网卡并返回网卡MAC地址的代码:PrivateFunctionMACAddress()AsStringSetobjs=GetObject("winmgmts:").ExecQuery(_"SELECTMACAddress"&_"FROMWin32_NetworkAdapter"&_"WHERE"&_"((MACAddressIsNotNULL

8、)"&_"AND(Manufacturer"&_"'Microsoft'))")ForEachobjInobjsMACAd

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。