wmi设置笔记本屏幕背景灯光亮度Vista以上系统
vbs脚本操作wmi对象的时候,有两种方法winmgmts:\ 和 WbemScripting.SWBemlocator,wmi设置笔记本屏幕背景灯光亮度Vista以上系统例子。
d.创建 (“WbemScripting.SWbemLocator”, )
'objWbemLocator.对象型方法 (“ConnectServer”, 参_计算机名, “\root\CIMV2”, 参_用户名, 参_密码, , , , ) ' 连接远程服务器
' 连接wmi服务 可以设置远程 (.为本地) 命名空间为root/wmi 命名空间可以说跟文件夹类似 不懂的打个比喻就明白了
WbemServices = d.对象型方法 (“ConnectServer”, “.”, “root/wmi”, , , , , , )
' 在微软wmi文档中查到的 屏幕设备类名
className = “WmiMonitorBrightnessMethods”
' ''''''''''''''''''重要环节'''''''''''''''''''''''''''
' 分析该对象的方法 参数名 + 数量 这个对象不能调用 调用会报错 就是被Get坑一天 但是可以显示所有
输出调试文本 (WbemServices.对象型方法 (“Get”, className).文本方法 (“GetObjectText_”, )) ' by:LingMax
' 枚举该对象 获取所有可以操控的对象
WmiMonitorBrightnessMethods_数组 = WbemServices.对象型方法 (“InstancesOf”, className)
' 循环 一个一个来
.计次循环首 (WmiMonitorBrightnessMethods_数组.读数值属性 (“Count”, ), i)
' 从枚举数据中 取出本次操作的对象 从0开始
o = WmiMonitorBrightnessMethods_数组.对象型方法 (“ItemIndex”, i - 1)
' 取出接口的参数 对象 为什么这么长? 微软文档上就是这么写的
InParameters = o.读对象型属性 (“Methods_”, ).对象型方法 (“Item”, “WmiSetBrightness”).读对象型属性 (“InParameters”, ).读对象型属性 (“SpawnInstance_”, )
.如果真 (InParameters.是否为空 () = 真)
输出调试文本 (“InParameters: 获取参数对象失败”)
.如果真结束
' 设置调用传递的参数 Properties_ Value 是固定的 微软文档上就是这样写的
InParameters.读对象型属性 (“Properties_”, ).对象型方法 (“Item”, “Timeout”).写属性 (“Value”, 10) ' 参数 Timeout 类型 uint32
InParameters.读对象型属性 (“Properties_”, ).对象型方法 (“Item”, “Brightness”).写属性 (“Value”, 10) ' 参数 Brightness 类型 uint8
输出调试文本 (“传递的参数 预览”, InParameters.文本方法 (“GetObjectText_”, ))
' 调用功能
objOutParams = o.对象型方法 (“ExecMethod_”, “WmiSetBrightness”, InParameters)
.如果 (o.取错误 () = “”)
输出调试文本 (“调用成功”)
.否则
输出调试文本 (“调用失败:傻逼了吧”)
.如果结束
输出调试文本 (objOutParams.是否为空 (), objOutParams.文本方法 (“GetObjectText_”, ), o.读对象型属性 (“Path_”, ).读文本属性 (“Path”, ), InParameters.取错误 (), o.取错误 ())
' o.查看 ()
.计次循环尾 ()