SWbemRefresher 对象
SWbemRefresher 对象是一个容器对象,可刷新添加到它的所有对象的数据。 可以在容器中添加或删除单个实例和实例枚举器。 添加的对象集,每个由 SWbemRefreshableItem 实例表示的项都可以视为一个集合并被枚举。 可以将任何类中的 WMI 实例添加到 SWbemRefresher 对象。 即使实例数据的提供程序不是高性能提供程序,刷新程序对象仍可以在 Refresh 调用中更新数据。 如果数据是通过高性能提供程序提供的,并且 AutoReconnect 属性为 TRUE,则 SWbemRefresher 对象会尝试重新建立与数据提供程序断开的连接。 该对象可以通过 VBScript CreateObject 调用创建。
可以通过调用 SWbemRefresher.Refresh 方法或 SWbemObjectEx.Refresh_ 方法来执行刷新操作。
成员
SWbemRefresher 对象包含以下类型的成员:
方法
SWbemRefresher 对象包含以下方法。
方法 | 说明 |
---|---|
Add | 向刷新程序对象中的集合添加新的可刷新对象。 |
AddEnum | 向刷新程序对象添加新枚举器。 |
DeleteAll | 从刷新程序对象的集合中删除所有项。 |
项 | 从集合中返回指定的刷新程序项。 |
Refresh | 更新刷新程序对象中包含的所有项。 |
Remove | 从刷新程序中删除具有指定索引的刷新程序项对象或对象集。 |
属性
SWbemRefresher 对象具有以下属性。
属性 | 访问类型 | 说明 |
---|---|---|
AutoReconnect |
只读 |
指示刷新程序是否在连接断开时自动重新连接到远程提供程序。 |
计数 |
只读 |
包含刷新程序对象中的项数。 |
示例
以下示例演示如何创建 SWbemRefresher 对象、使用 Add 和 AddEnum 方法存储单个实例和枚举实例、刷新数据以及使用 Item 属性获取 SWbemRefreshableItem 对象。
' Get namespace connections
set objServicesCimv2 = GetObject("winmgmts:root\cimv2")
set objServicesDefault = GetObject("winmgmts:root\default")
' Create a refresher object
set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
' Add a single object (SWbemObjectEx) to the refresher. The "@"
' is used because _CIMOMIdentification is a singleton class- only
' one instance exists. Note that the
' SWbemRefreshableItem.Object property must
' be specified or the SWbemRefresher.Refresh call will fail.
set objRefreshableItem1 = objRefresher. _
Add (objServicesDefault, "__CIMOMIdentification=@").Object
' Add an enumerator (SWbemObjectSet object)
' to the refresher. Note that the
' SWbemRefreshableItem.ObjectSet property
' must be specified or the SWbemRefresher.Refresh call will fail.
set objRefreshableItem2 = objRefresher. _
AddEnum (objServicesCimv2, "Win32_Process").ObjectSet
' Display number of items in refresher and update the data.
MsgBox "Number of items in refresher = " & objRefresher.Count
objRefresher.Refresh
' Iterate through the refresher. SWbemRefreshable
' Item.IsSet checks for whether the item is an enumerator.
for each RefreshableItem in objRefresher
if RefreshableItem.IsSet then
MsgBox "Item with index " & RefreshableItem.Index &_
" is an enumerator containing "_
& RefreshableItem.ObjectSet.Count & " processes"
else
MsgBox "Item with index " & RefreshableItem.Index _
& " is a single object containing WMI version "_
& objRefreshableItem1.VersionCurrentlyRunning
end if
next
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista |
最低受支持的服务器 |
Windows Server 2008 |
标头 |
|
类型库 |
|
DLL |
|
CLSID |
CLSID_SWbemRefresher |
IID |
IID_ISWbemRefresher |