没有合适的资源?快使用搜索试试~ 我知道了~
VB使用WMI编程(零号).doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 33 浏览量
2022-06-26
09:31:18
上传
评论
收藏 457KB DOC 举报
温馨提示
试读
51页
VB使用WMI编程(零号).doc
资源推荐
资源详情
资源评论
使用 编程 零号
一、认识
通常 程序员经常抱怨 在编制 系统软硬件设备控制方面的程序比较困
难,即使能实现一些功能,那也是要通过调用繁复的 函数,即难找寻到合适的函数,
又难以理解设置函数中的各项参数,尤其是调试异常困难,动不动整个程序连带 环境
一起死悄悄。此外,用 编程几乎完全抛弃了面向对象的编程方法,迫使我们回到过程
方式的编程。那怎么办呢?别急,微软在 系统中推出了 脚本语
言替代原来的批命令,同时提供了一个供 管理 系统的对象 。那
这个 对象我们 能用吗?答案是肯定的,当然能用,而且用起来还非常方便,在网
上也已经有了一些 写的利用 实现 系统管理编程的例程,但却缺少系统
性介绍使用 对 编程的资料。本文就针对此问题,进行一个尝试。当然要学习
编程,需要有一定的 基础,但要求不高,只要会用控件、对象,能理解和使用对
象的方法、属性,但不需要任何 方面的知识和编程经验。
首先我们要知道什么是 ? 是
管理工具的缩写,是内置在 、!和
"#系列操作系统中核心的管理支持技术。基于由 $%
&'($&(所监督的业界标准,是一种规范和基础结构,通过它可以访问、
配置、管理和监视所有的 — 几乎所有的 资源。
呵呵,不要对这段文字进行咬文嚼字,通俗的讲,就是 是一个用于管理
系统的对象,就像 $) 对象是用于数据库操作的。利用 我们可以管理 系
统中的磁盘、事件日志、文件、文件夹、文件系统、网络组件、操作系统设置、性能数据
打印机、进程、注册表设置、安全性、服务、共享、用户、组等等。
而 适用的运得环境也是有些限制的, 附带在 、
、 ! 和 " # 之 中 。 对 于 *+ 和
& ,- , 可 以 访 问 ./00-1-02 并 搜 索
“ 3)456-7*70*+0&
,-8。注意:在 &,- 上安装并运行 之前,需要首先安装 "
',或更高版本。
需要的其他软件包括:
6-15927-或更高版本。
-:(:)。 、!、
"#、和 附带的 :,而不是 &,或 *+
附带的 :。您可以从以下地址下载 :./00-1-02-
:的最新版本—— 包括在 ! 和 "#之中——是
:7-;。
要使 脚本可以正常的运行, 里的 服务()保证是运行
的,这样才可以实现 里的更多功能。好了,关于 的一些基本的信息资料就说到
这,要想看更多的可以到 1 网站的 $ 找。
大家都喜欢通过例程来学东西,那我们也先编一段程序来看看。不知道大家看到过没有
本人在本论坛中曾经写过一篇“自己做进程管理器”的帖子,在那篇帖子里主要是采用
函数罗列出当前系统下正在运行的所有进程,下面我们利用 也来做一个进程管理器。
首先建立 一 个新工 程 具有 (6 窗 体,在菜 单 中的【 工 程 】—【 部 件 】下, 添 加
“1332;-8,在菜单中的【工程】—【引用】下,添
加 “ 1 6-6 <%=8 , 然 后 在 (6 窗 体 上 添 加 6 个
<6 和 36、3,在代码窗口添加如下代码(例程 6):
)592
$%>%<%<
$%>%"%"
$%>%)%>%)%>
$%>%)%>%)%>
" %(<
-3?@进程管理器@
36-3?@刷新@
3-3?@结束进程@
<6-32 :-32
<6-32 :-A@@A@进程 $@A;
<6-32 :-A@%@A@进程名@A
<6-32 :-A@@A@路径@A;
<6-?2"4
3632'B刷新进程列表
5 %
" %3632'
$<
<6-<-32B清空 <
%>%"?%>%<-3"B连接到本机的
,返回一个对 %"对象的引用
%>%)%> ?
%>%"-)1@#@B返回 # 类名标
识的所有实例
?
( 5. %>%)%> %>%)%>B 枚 举 每 一 个
# 的实例
<6-<-A@@CA%>%)%>-:2B将进程 $ 添加
到 <6 第一列
<6-<@@C- %6?%>%)%>-B将进
程名添加到 <6 第二列
1 22%>%)%>-59 %2.&.
<6-<@@ C - % ?
%>%)%>-59 %2.B将进程路径添加到 <6 第三列
?D6
9
%>%)%>?.
5 %
" %332'
$&'<
1<6-2-&9EF@@&.
19@ 确实要结 束进程G@ C<6-2- %6C@H
吗?@A"%I?"%I&.
%>%)%>?%>%"-59J =@5<53&K
(4)#:545:2?B@C<6-2-&9C@B@
B查询 # 类中 :2 属性等于指定值的所有实例
(5.%>%)%>%>%)%>
&'?%>%)%>-&B终止指定进程
9
1&'?&.
9<6-2- %6C@已经被终止!@
52
9<6-2- %6C@不能被终止!@
51
3632'B刷新进程列表
51
51
5 %
呵呵,我们没有用任何系统的 函数却千真万确的实现了进程管理这个系统级的应
用,而且采用的是标准的面向对象的编程,其实这段代码仅仅实现了我们在前面提到的一
篇“自己做进程管理器”的帖子中用 函数也能实现的功能。嗯???怎么?还能比这更
强?哈哈,当然!!下一讲我们分析该例程时,还会告诉各位,将该例程稍加修改,就可
以在你的局域网中对任何一台 以上的计算机进行进程管理!晕!那不是我就能
在我的局域网中为所欲为了吗?别急,那当然是有条件的,微软当然不会允许未经授权就
可以随便控制其它的计算机的-
二、 中使用 的基本方法
上一讲我们初步了解了一下 ,并在 中使用 对象做了一个进程管理器,为
加深各位的对 对象引用方法的程序结构印象和增加兴趣,我们再举一个例子,就是枚
举当前系统所有服务的名称、状态和启动类型等。与例程 6 一样,首先建立一个新工程具
有 (6 窗 体 , 在 菜 单 中 的 【 工 程 】 — 【 部 件 】 下 , 添 加 “ 1
332;-8,在菜单中的【工程】—【引用】下,添加“ 1
6-6<%=8,然后在 (6 窗体上添加 6 个 <6,在代码窗口添加
如下代码(例程 ):
)592
$%>%<%<
$%>%"%"
$%>%)%>%)%>
$%>%)%>%)%>
$3 AA32
" %(<
$<
-3?@服务@
<6-32 :-32
<6-32 :-AA@名称@A;
<6-32 :-AA@状态@A6
<6-32 :-AA@启动类型@A6
<6-32 :-AA@路径@A;
<6-32 :-AA@登录身份@A6,
<6-?2"4
3 ?@-@B计算机名,-为本机
?@L"@B指定命名空间为 L"
32?@#"@B指定类为 #"
%>%<?3)%>@%-%<@
B建立 6 个 5 对象的引用指针
%>%" ? %>%<-3"3 A
B连接到指定计算机、命名空间的 ,返回一个对 %"
对象的引用
%>%)%>?%>%"-59J =@5<53&K(4)
@C32B通过 J< 查询,返回指定类的所有实例
(5.%>%)%>%>%)%>
<6-<-A@@CA%>%)%>-$2=B将服务名
称添加到 <6 第一列
<6-<@@C- %6?%>%)%>-B将服务
的状态添加到 <6 第二列
<6-<@@ C- %? %>%)%>-
B将服务的启动方式添加到 <6 第三列
<6-<@@ C - %# ?%>%)%>-.
B将服务程序的路径添加到 <6 第四列
<6-<@@C- %, ?%>%)%>-
B将服务的登录身份添加到 <6 第五列
?D6
9
%>%)%>?.
%>%)%>?.
5 %
嘿,我们运行这个例程后,果然把自己计算机上所有的服务都列了出来,并且还知道这
些服务目前的运行状态以及服务程序所在的目录和执行文件名。美中不足的是似乎我们不
能停止或启动某个服务,不要急,其实可以很方便的就增加停止或启动某个服务的功能,
但因为本节主要是要讨论 中使用 的基本方法,因此故意省略了其它一些功能的实
现。
闲话少说言规正传,现在我们就开始讨论一下 中使用 的基本方法。例程 与
例程 6 相比,除了功能不一样外,精简了程序结构,因此我们就以例程 的结构为主进行
讨论。
我们先来观察一下例程 6 和例程 ,可以看到它们都添加了“1
6-6<%=8的引用,这个对象库(以下简称 脚本对象库)就是我们在 的
编程中所要依赖的。再看一下程序的定义部分和整个程序的首次执行过程,它们基本相同
都定义了 %<、%"、%)%>、%)%> 对
象;创建了 %< 指针实例;通过 %< 指针连接到 服务;检
索一个 托管资源;枚举托管资源中的每个实例;显示各实例的一些属性。其实这些
步骤对于任何用于检索 托管资源信息的程序来说都是共同的,下面我们就详细的分
析一下各步骤。
6)创建 %< 指针
创建 %< 指针的目的是为了建立一个引用 对象的实例,然后用这个
实例操作 。有没有注意到,例程 6 和例程 创建 %< 指针稍有不同,例
程 6 是在定义处用 $%>%<%< 定义语句直接创
建 了 , 而 例 程 是 在 执 行 过 程 (< 中 用 %>%< ?
3)%>@%-%<@语句创建的,其实可以将这条语句
简化为 %>%<?%< 来创建。不管用哪种方式创建
%< 指针,都不影响下面的步骤。%< 指针对象只有 6 个只读属
性 =(其实也是一个对象)和 6 个方法 3",第二步中我们就会讨论
用此方法连接到 服务。
)连接到 服务
要 用 对 象 编 程 , 必 须 连 接 到 目 标 计 算 机 的 服 务 , 然 后 返 回 一 个
%" 对 象 。 比 较 一 下 例 程 6 和 例 程 的 连 接 方 法 , 它 们 都 用
%< 指针对象的 3" 方法实现,不过例程 6 没有用任何参数,例
程 中增加了 3 和 二个参数。3" 方法共有 +
个参数,所有参数都是可选的,因此我们看到例程 6 中没有用任何参数,即全部使用缺省
参数。下面我们看一下这 + 个参数:
"计算机名字,如果这台远程计算机与你不是同一个主域,需要完整的带域名
的全称,例如:”6-9999-===8。缺省为本机,本机也可以用”-8
需要登录的 3 命名空间,例如: @L3@。缺省为@L
3@。( 3 就是一个存储库(架构),包括模型化托管环境和定义每个由 公
开的数据块的对象储存库或类存储, 所有的类被分组到命名空间中,命名空间是表示
一个特定的管理区域的类逻辑组,在这里就不深入分析了)
M用户名,一般必须为指定计算机上管理员帐号,也可以是指定主域的用户名,
例如:@$LM@。缺省为当前登录系统帐号的用户名。
口令(密码),对应用户名的口令
<2本地化代码,通常为空。
.= 验 证 字符串, 通 常 为 空 , 如 果不为空 ,则 只 能 用 于 “ N%8或
“&<$8。
剩余50页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3605
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功