


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、vb使用wmi编程讲座(原版整理)(持续更新)出了vbscript脚本语言替代原来的批命令,同时提供了一个供vbscript管理windows系统的对象wmi。那这个wmi对象我们vb能用吗?答案是肯定的,当然能用,而且用起来还非常方便,在上也已经有了一些vb写的利用wmi实现windows系统管理编程的例程,但却缺少系统性介绍使用vb对wmi编程的资料。本文就针对此问题,进行一个尝试。当然要学习wmi编程,需要有一定的vb基础,但要求不高,只要会用控件、对象,能理解和使用对象的方法、属性,但不需要任何api方面的知识和编程经验。 首先我们要知道什么是wmi?wmi是windows manag
2、ement instrumentation (windows管理工具)的缩写,是内置在 windows 2000、windows xp 和 windows server 2003 系列操作系统中核心的管理支持技术。基于由 distributed management task force (dmtf) 所监督的业界标准,wmi 是一种规范和基础结构,通过它可以访问、配置、管理和监视所有的 几乎所有的 windows 资源。 呵呵,不要对这段文字进行咬文嚼字,通俗的讲,就是wmi是一个用于管理windows系统的对象,就像ado对象是用于数据库操作的。利用wmi我们可以管理windows系统中的
3、磁盘、事件日志、文件、文件夹、文件系统、络组件、操作系统设置、性能数据、打印机、进程、注册表设置、安全性、服务、共享、用户、组等等。 而wmi适用的运得环境也是有些限制的, wmi 附带在 windows me、windows 2000、windows xp 和 windows server 2003 之中。对于 windows 98 和 windows nt 4.0,可以访问/downloads并搜索“windows management instrumentation (wmi) core 1.5 (windows 95/98/nt 4. 0)”。注意:在 windows nt 4.0 上
4、安装并运行 wmi 之前,需要首先安装 service pack 4 或更高版本。 wmi 需要的其他软件包括: 1. microsoft internet explorer 5.0 或更高版本。 2. windows script host(wsh)。windows 2000、windows xp、windows server 2003、和 windows me 附带的 wsh,而不是 windows nt4 或 windows 98 附带的 wsh。您可以从以下地址下载 wsh /downloads. wsh 的最新版本 包括在 windows xp 和 windows server 20
5、03 之中是 wsh 5.6。 要使wmi脚本可以正常的运行,windows里的wmi 服务(winmgmt)保证是运行的,这样才可以实现wmi里的更多功能。好了,关于wmi的一些基本的信息资料就说到这,要想看更多的可以到microsoft站的msdn找。 大家都喜欢通过例程来学东西,那我们也先编一段程序来看看。不知道大家看到过没有本人在本论坛中曾经写过一篇“自己做进程管理器”的帖子,在那篇帖子里主要是采用api函数罗列出当前系统下正在运行的所有进程,下面我们利用wmi也来做一个进程管理器。首先建立一个新工程具有form1窗体,在菜单中的【工程】【部件】下,添加“microsoft windo
6、ws common controls 6.0”,在菜单中的【工程】【引用】下,添加“microsoft wmi scripting v1.1 library”,然后在form1窗体上添加1个listview1和command1、command2,在代码窗口添加如下代码(例程1): option explicit dim objswbemlocator as new swbemlocator dim objswbemservices as swbemservices dim objswbemobjectset as swbemobjectset dim objswbemobject as swb
7、emobject private sub form_load() me.caption = 进程管理器 command1.caption = 刷新 command2.caption = 结束进程 listview1.columnheaders.clear listview1.columnheaders.add , 进程id listview1.columnheaders.add , 进程名 listview1.columnheaders.add , 路径 listview1.view = lvwreport command1_click 刷新进程列表 end sub private sub c
8、ommand1_click() dim i as long listview1.listitems.clear 清空listview set objswbemservices = objswbemlocator.connectserver() 连接到本机的wmi,返回一个对 swbemservices 对象的引用 set objswbemobjectset = objswbemservices.instancesof(ss返回win32_process类名标识的所有实例 i = 0 for each objswbemobject in objswbemobjectset 枚举每一个win32_
9、process的实例 listview1.listitems.add , 将进程id添加到listview1第一列 listview1.listitems(e 将进程名添加到listview1第二列 if not isnull(objswbemobject.executablepath) then _ listview1.listitems(executablepath 将进程路径添加到listview1第三列 i = i + 1 next set objswbemobjectset = nothing end sub private sub command2_click() dim tmba
10、ck as long if listview1.selecteditem.text if msgbox(确实要结束进程(1) & 吗? set objswbemobjectset = objswbemservices.execquery(t * from win32_process where handle = t & 查询win32_process类中handle属性等于指定值的所有实例 for each objswbemobject in objswbemobjectset tmback = objswbemobject.terminate 终止指定进程 next if tmback =
11、0 then msgbox listview1.selecteditem.subitems(1) & 已经被终止! else msgbox listview1.selecteditem.subitems(1) & 不能被终止! end if command1_click 刷新进程列表 end if end if end sub 呵呵,我们没有用任何系统的api函数却千真万确的实现了进程管理这个系 统级的应用,而且采用的是标准的面向对象的编程,其实这段代码仅仅实现了我们在前面提到的一篇“自己做进程管理器”的帖子中用api函数也能实现的功能。嗯?怎么?还能比这更强?哈哈,当然!下一讲我们分析该例程
12、时,还会告诉各位,将该例程稍加修改,就可以在你的局域中对任何一台win2000以上的计算机进行进程管理!晕!那不是我就能在我的局域中为所欲为了吗?别急,那当然是有条件的,微软当然不会允许未经授权就可以随便控制其它的计算机的。 因为本人平时工作还是比较忙的,只有抽空就继续写,打算每星期写一讲,本次算是第一讲,下一讲主要结合本讲的例程,介绍在vb中使用wmi的基本方法。 二、vb中使用wmi的基本方法 上一讲我们初步了解了一下wmi,并在vb中使用wmi对象做了一个进程管理器,为加深各位的对wmi对象引用方法的程序结构印象和增加兴趣,我们再举一个例子,就是枚举当前系统所有服务的名称、状态和启动类型等。与例程1一样,首先建立一个新工程具有form1窗体,在菜单中的【工程】【部件】下,添加“microsoft windows common controls 6.0”,在菜单中的【工程】【引用】下,添加“microsoft wmi scripting v1.1 library”,然后在form1窗体上添加1个listview1,在代码窗口添加如下代码(例程2): option explicit dim objswbemlocator as swbemlocator dim objswbemservi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度解除劳动合同证明书范本与解除合同法律依据
- 二零二五年度土地承包经营权租赁合同
- 2025年度网约车平台车辆牌照借用及运营管理合同
- 二零二五年度钢结构厂房拆除工程安全责任合同范本
- 二零二五年度企业员工年合同期满辞退补偿流程协议
- 二零二五珠宝抵押贷款协议定制购买珍贵首饰专项合同
- 二零二五年度顺丰快递快递业务代收货款服务合同
- 二零二五年度电梯维修保养及安全培训教材制作合同
- 天津地铁3号线某合同段工程施工组织设计(图文并茂很详细)
- 环保项目参与风险免责合同
- 《住院患者身体约束的护理》团体标准解读课件
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
- 2024年黑龙江建筑职业技术学院单招职业适应性测试题库全面
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
- GB/T 28799.2-2020冷热水用耐热聚乙烯(PE-RT)管道系统第2部分:管材
- 2023-瑞幸咖啡vi手册
- 10000中国普通人名大全
- 项目章程模板范文
- 耳尖放血疗法治疗高血压病技术
- 泰山产业领军人才工程系统
- 轮扣架支模体系材料量计算
评论
0/150
提交评论