aardio 文档

com.wmi 库模块帮助文档

com 成员列表

com.wmi()

返回对象:ComObject

com.wmi(path,computer)

创建并返回 WMI 客户端对象,失败返回 null,
所有参数可省略,
@path 默认为 "\root\cimv2"
@computer 默认为"."

com.wmi 成员列表

WMI / Windows Management Instrumentation 客户端。
用法也可可参考 com.monitor 库源码,以及『 范例 / COM 组件 / WMI 』。
参考文档 https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-reference

创建 WMI 客户端对象,失败返回 null

com.wmi.each()

返回对象:SWbemObject

com.wmi.each(wql,path,...)

for index,item in com.wmi.each("/*遍历 WMI 对象,  
可输入WQL查询语句或类名  
可选用参数@2指定 WMI 路径,默认为 "\root\cimv2"  

可选用参数@3及后续参数指定格式化参数,  
如果格式化参数是表,则可省略 @path 且不用保留参数位置,  
参数表可格式化 @号 开头的命名参数或以 ? 号为占位符的匿名参数,  
如果参数不是一个表,则调用 string.format 格式化*/") {

}

com.wmi.eachNotification(wql,path,...)

for event,targetInstance in com.wmi.eachNotification("/*遍历 WMI 查询事件通知,同步阻塞执行。  
可输入WQL查询语句或类名  
可选用参数@2指定 WMI 路径,默认为 "\root\cimv2"  

可选用参数@3及后续参数指定格式化参数,  
如果格式化参数是表,则可省略 @path 且不用保留参数位置,  
参数表可格式化 @号 开头的命名参数或以 ? 号为占位符的匿名参数,  
如果参数不是一个表,则调用 string.format 格式化*/") {

}

com.wmi.eachProperties(wql,path,...)

for item in com.wmi.eachProperties("/*遍历 WMI 对象的属性表,  
可输入WQL查询语句或类名  
可选用参数@2指定 WMI 路径,默认为 "\root\cimv2"  

可选用参数@3及后续参数指定格式化参数,  
如果格式化参数是表,则可省略 @path 且不用保留参数位置,  
参数表可格式化 @号 开头的命名参数或以 ? 号为占位符的匿名参数,  
如果参数不是一个表,则调用 string.format 格式化*/") {

}

com.wmi.formatWqlParameters

格式化参数 @1 指定的 WQL 语句,
com.wmi.query 等函数调用此函数格式化 WQL 语句

com.wmi.formatWqlParameters(wql,...)

格式化参数 @1 指定的 WQL 语句,
参数@2及后续参数指定格式化参数,
支持 @号 开头的命名参数或以 ? 号为占位符的匿名参数,
如果参数不是一个表,则调用 string.format 格式化

com.wmi.get

可输入WQL查询语句或类名,
返回首个查询结果

com.wmi.get()

返回对象:SWbemObject

com.wmi.get(wql)

参数 @wql 可输入WQL查询语句或类名,
成功则返回首个查询结果,
可选用参数@3指定 WMI 路径,默认为 "\root\cimv2"
可选用参数@4及后续参数指定格式化参数,
支持 @号 开头的命名参数或以 ? 号为占位符的匿名参数,
如果参数不是一个表,则调用 string.format 格式化

com.wmi.get(wql,property,path,...)

参数 @wql 可输入WQL查询语句或类名,
成功则返回首个查询结果中 @property 参数指定的属性值
失败返回 null,
可选用参数@path指定 WMI 路径,默认为 "\root\cimv2"
可选用参数@4及后续参数指定格式化参数,
如果格式化参数是表,则可省略 @property,@path 且不用保留参数位置,
参数表可格式化 @号 开头的命名参数或以 ? 号为占位符的匿名参数,
如果参数不是一个表,则调用 string.format 格式化

com.wmi.getProperties

返回所有属性

com.wmi.getProperties(wmiObject)

参数 @wmiObject 可输入 WMI 对象,
返回该对象所有属性组成的表,表以属性名为键,属性值为值,
失败返回 null

com.wmi.getProperties(wql,path,...)

参数 @wql 可输入WQL查询语句或类名,
可选用参数@path 指定 WMI 路径,默认为 "\root\cimv2",
返回首个查询结果中所有属性组成的表,表以属性名为键,属性值为值,
失败返回 null

可选用参数@3及后续参数指定格式化参数,
如果格式化参数是表,则可省略 @path 且不用保留参数位置,
参数表可格式化 @号 开头的命名参数或以 ? 号为占位符的匿名参数,
如果参数不是一个表,则调用 string.format 格式化

com.wmi.getTable(wql,path,...)

查询并返回包含所有返回 WMI 对象的属性表的数组
@wql 参数可输入WQL查询语句或类名,
可选用参数@path 指定 WMI 路径,默认为 "\root\cimv2"

可选用参数@3及后续参数指定格式化参数,
如果格式化参数是表,则可省略 @path 且不用保留参数位置,
参数表可格式化 @号 开头的命名参数或以 ? 号为占位符的匿名参数,
如果参数不是一个表,则调用 string.format 格式化

com.wmi.query

执行 WQL 查询

com.wmi.query(wql,path,...)

参数 @wql 可输入 WQL 查询语句或类名,
调用 ExecQuery 返回查询结果,
可选用参数 @path 指定 WMI 路径,默认为 "\root\cimv2"
可选用参数@3及后续参数指定格式化参数,
如果格式化参数是表,则可省略 @path 且不用保留参数位置,
参数表可格式化 @号 开头的命名参数或以 ? 号为占位符的数组参数,
如果参数不是一个表,则调用 string.format 格式化

com.wmi.queryAsync

执行异步 WQL 查询

com.wmi.queryAsync(objSink,wql,path,...)

参数 @objSink 可指定 com.wmi.sink 对象,或者创建该对象的参数表。
参数 @wql 可输入 WQL 查询语句或类名,
调用 ExecQuery 返回查询结果,
可选用参数 @path 指定 WMI 路径,默认为 "\root\cimv2"
可选用参数@3及后续参数指定格式化参数,
如果格式化参数是表,则可省略 @path 且不用保留参数位置,
参数表可格式化 @号 开头的命名参数或以 ? 号为占位符的数组参数,
如果参数不是一个表,则调用 string.format 格式化

com.wmi.queryNotificationAsync

执行异步 WQL 查询以接收事件

com.wmi.queryNotificationAsync(objSink,wql,path,...)

参数 @objSink 可指定 com.wmi.sink 对象,或者创建该对象的参数表。
参数 @wql 可输入 WQL 查询语句或类名,
调用 ExecQuery 返回查询结果,
可选用参数 @path 指定 WMI 路径,默认为 "\root\cimv2"
可选用参数@3及后续参数指定格式化参数,
如果格式化参数是表,则可省略 @path 且不用保留参数位置,
参数表可格式化 @号 开头的命名参数或以 ? 号为占位符的数组参数,
如果参数不是一个表,则调用 string.format 格式化

com.wmi.sink(event)

com.wmi.sink(  
    OnCompleted = function(hResult,wbemErrorObject,wbemAsyncContext){  

    };  
    OnObjectPut = function(wbemObjectPath,wbemAsyncContext){  

    };  
    OnObjectReady = function(wbemObject,wbemAsyncContext){  

    };  
    OnProgress = function(upperBound,current,message,wbemAsyncContext){  

    };  
)

ComObject 成员列表

ComObject.ExecNotificationQuery(wqlQuery)

执行查询并接收事件

ComObject.ExecNotificationQueryAsync(sinkObj,wqlQuery)

执行异步查询以接收事件,
参数@1必须传入 com.wmi.sink 创建的对象,
参数@2指定 WQL 查询语句
更多参数说明请参考 https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices-execnotificationquery

ComObject.ExecQuery("SELECT * FROM Win32_BaseBoard")

使用 WQL 进行查询,返回 COM 对象,
参数@2必须省略,可选用参数@3指定选项,
半同步优化请将参数@3指定以下值 _wbemFlagReturnImmediately | _wbemFlagForwardOnly
更多参数说明请参考 https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices-execquery

ComObject.ExecQueryAsync(sinkObj,wqlQuery)

异步查询对象,
参数@1必须传入 com.wmi.sink 创建的对象,
参数@2指定 WQL 查询语句。
更多参数说明请参考 https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices-execqueryasync

ComObject.InstancesOf(strClass,iFlags)

根据指定的类名,返回可使用 com.each 遍历的对象

SWbemObject 成员列表

SWbemObject.Delete_

删除对象

SWbemObject.PutAsync_

异步创建或更新 WMI 对象

SWbemObject.Put_()

创建或更新 WMI 对象,
修改属性后要调用这个函数才会生效,
进程可能需要管理权限

自动完成常量

_wbemFlagForwardOnly=32
_wbemFlagReturnImmediately=16

Markdown 格式