• 新规:续航150公里以下新能源车取消补贴 2019-10-11
  • 法国革命时代,女人流行穿什么 2019-10-11
  • 黑龙江省县(市、区)委统战部长培训班举办 2019-10-06
  • “夏季第一瓜”竟是它! 2019-10-06
  • 《阿古顿巴》藏语版在藏语卫视首播 2019-09-06
  • 晋中市“三同步”推动互联网治理创新 2019-08-27
  • 法媒:研究称美国人常用药物或增加抑郁风险 2019-08-27
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 平码中一个有多少钱:WMI StdRegProv 通过wmi操作注册表的vbscript实现代码 (本地或远程)

    来源:本网整理
    Because of its length, only the code for the function itself is shown on this page.
    The demo script that shows how to use this function is available as a separate download.
    复制代码 代码如下:
    Function ReadRegValue( myComputer, myRegPath, myRegValue )
    ' This function reads a value from the registry of any WMI
    ' enabled computer.
    '
    ' Arguments:
    ' myComputer a computer name or IP address,
    ' or a dot for the local computer
    ' myRegPath a full registry key path, e.g.
    ' HKEY_CLASSES_ROOT\.jpg or
    ' HKLM\SOFTWARE\Microsoft\DirectX
    ' myRegValue the value name to be queried, e.g.
    ' InstalledVersion or "" for default
    ' values
    '
    ' The function returns an array with the following elements:
    ' ReadRegValue(0) the computer name (the first argument)
    ' ReadRegValue(1) the hive number (see const declarations)
    ' ReadRegValue(2) the key path without the hive
    ' ReadRegValue(3) the value name (the third argument)
    ' ReadRegValue(4) the error number: 0 means no error
    ' ReadRegValue(5) the data type of the result
    ' ReadRegValue(6) the actual data, or the first element of an
    ' array of data for REG_BINARY or REG_MULTI_SZ
    '
    ' Written by Rob van der Woude
    ' //www.robvanderwoude.com


    ' Standard housekeeping
    Const HKEY_CLASSES_ROOT = &H80000000
    Const HKEY_CURRENT_USER = &H80000001
    Const HKEY_LOCAL_MACHINE = &H80000002
    Const HKEY_USERS = &H80000003
    Const HKEY_CURRENT_CONFIG = &H80000005
    Const HKEY_DYN_DATA = &H80000006 ' Windows 95/98 only

    Const REG_SZ = 1
    Const REG_EXPAND_SZ = 2
    Const REG_BINARY = 3
    Const REG_DWORD = 4
    Const REG_DWORD_BIG_ENDIAN = 5
    Const REG_LINK = 6
    Const REG_MULTI_SZ = 7
    Const REG_RESOURCE_LIST = 8
    Const REG_FULL_RESOURCE_DESCRIPTOR = 9
    Const REG_RESOURCE_REQUIREMENTS_LIST = 10
    Const REG_QWORD = 11

    Dim arrRegPath, arrResult(), arrValueNames, arrValueTypes
    Dim i, objReg, strHive, valRegError, valRegType, valRegVal

    ' Assume no error, for now
    valRegError = 0

    ' Split the registry path in a hive part
    ' and the rest, and check if that succeeded
    arrRegPath = Split( myRegPath, "\", 2 )
    If IsArray( arrRegPath ) Then
    If UBound( arrRegPath ) <> 1 Then valRegError = 5
    Else
    valRegError = 5
    End If

    ' Convert the hive string to a hive number
    Select Case UCase( arrRegPath( 0 ) )
    Case "HKCR", "HKEY_CLASSES_ROOT"
    strHive = HKEY_CLASSES_ROOT
    Case "HKCU", "HKEY_CURRENT_USER"
    strHive = HKEY_CURRENT_USER
    Case "HKLM", "HKEY_LOCAL_MACHINE"
    strHive = HKEY_LOCAL_MACHINE
    Case "HKU", "HKEY_USERS"
    strHive = HKEY_USERS
    Case "HKCC", "HKEY_CURRENT_CONFIG"
    strHive = HKEY_CURRENT_CONFIG
    Case "HKDD", "HKEY_DYN_DATA"
    strHive = HKEY_DYN_DATA
    Case Else
    valRegError = 5
    End Select

    ' Abort if any error occurred, and return an error code
    If valRegError > 0 Then
    ReadRegValue = Array( myComputer, myRegPath, _
    myRegPath, myRegValue, _
    valRegError, "-", "-" )
    Exit Function
    End If

    ' Initiate custom error handling
    On Error Resume Next

    ' Create a WMI registry object
    Set objReg = GetObject( "winmgmts:{impersonationLevel=impersonate}!//" _
    & myComputer & "/root/default:StdRegProv" )

    ' Abort on failure to create the object
    If Err Then
    valRegError = Err.Number
    Err.Clear
    On Error Goto 0
    ReadRegValue = Array( myComputer, myRegPath, _
    myRegPath, myRegValue, _
    valRegError, "-", "-" )
    Exit Function
    End If

    ' Get a list of all values in the registry path;
    ' we need to do this in order to find out the
    ' exact data type for the requested value
    objReg.EnumValues strHive, arrRegPath( 1 ), arrValueNames, arrValueTypes

    ' If no values were found, we'll need to retrieve a default value
    If Not IsArray( arrValueNames ) Then
    arrValueNames = Array( "" )
    arrValueTypes = Array( REG_SZ )
    End If

    If Err Then
    ' Abort on failure, returning an error code
    valRegError = Err.Number
    Err.Clear
    On Error Goto 0
    ReadRegValue = Array( myComputer, myRegPath, _
    myRegPath, myRegValue, _
    valRegError, "-", "-" )
    Exit Function
    Else
    ' Loop through all values in the list . . .
    For i = 0 To UBound( arrValueNames )
    ' . . . and find the one requested
    If UCase( arrValueNames( i ) ) = UCase( myRegValue ) Then
    ' Read the requested value's data type
    valRegType = arrValueTypes( i )
    ' Based on the data type, use the appropriate query to retrieve the data
    Select Case valRegType
    Case REG_SZ
    objReg.GetStringValue strHive, arrRegPath( 1 ), _
    myRegValue, valRegVal
    If Err Then valRegError = Err.Number
    Case REG_EXPAND_SZ
    objReg.GetExpandedStringValue strHive, arrRegPath( 1 ), _
    myRegValue, valRegVal
    If Err Then valRegError = Err.Number
    Case REG_BINARY ' returns an array of bytes
    objReg.GetBinaryValue strHive, arrRegPath( 1 ), _
    myRegValue, valRegVal
    If Err Then valRegError = Err.Number
    Case REG_DWORD
    objReg.GetDWORDValue strHive, arrRegPath( 1 ), _
    myRegValue, valRegVal
    If Err Then valRegError = Err.Number
    Case REG_MULTI_SZ ' returns an array of strings
    objReg.GetMultiStringValue strHive, arrRegPath( 1 ), _
    myRegValue, valRegVal
    If Err Then valRegError = Err.Number
    Case REG_QWORD
    objReg.GetQWORDValue strHive, arrRegPath( 1 ), _
    myRegValue, valRegVal
    If Err Then valRegError = Err.Number
    Case Else
    valRegError = 5
    End Select
    End If
    Next
    End If

    ' Check if an error occurred
    If valRegError > 0 Then
    valRegType = ""
    valRegVal = ""
    Err.Clear
    On Error Goto 0
    End If

    ' Return the data in an array
    If valRegType = REG_BINARY Or valRegType = REG_MULTI_SZ Then
    ' First, deal with registry data which is
    ' returned as array instead of single value
    ReDim Preserve arrResult( 6 + UBound( valRegVal ) )
    arrResult( 0 ) = myComputer
    arrResult( 1 ) = strHive
    arrResult( 2 ) = arrRegPath( 1 )
    arrResult( 3 ) = myRegValue
    arrResult( 4 ) = valRegError
    arrResult( 5 ) = valRegType
    For i = 0 To UBound( valRegVal )
    arrResult( 6 + i ) = valRegVal( i )
    Next
    ReadRegValue = arrResult
    Else
    ReadRegValue = Array( myComputer, strHive, arrRegPath( 1 ), _
    myRegValue, valRegError, valRegType, valRegVal )
    End If

    ' Finished
    Set objReg = Nothing
    On Error Goto 0
    End Function

    Requirements:
    Windows version: ME, 2000, XP, Server 2003, or Vista (95, 98, NT 4 with WMI CORE 1.5)
    Network: any
    Client software: WMI CORE 1.5 for Windows 95, 98 or NT 4
    Script Engine: any
    Summarized: Can work on any Windows computer, but WMI CORE 1.5 is required for Windows 95, 98 or NT 4.
    Can be used in *.vbs with CSCRIPT.EXE or WSCRIPT.EXE, as well as in HTAs.

    彩票双色球历史开奖结果 www.s9h6.com

  • 本文相关:
  • bookfind 通过ISBN序号获取图书连接的书名与作者的vbs代码
  • VBS脚本和BAT批处理删除自身的方法
  • VBS字符串的内部实现
  • ASP/VBScript中CHR(0)的由来以及带来的安全问题分析
  • VBS正则表达式对象的MultiLine属性
  • VBS创建正则表达式对象的两种方法
  • VBS实现将字符串写入剪切板的实现代码
  • 用VBScript实现压缩目录中的所有文件(Zip)
  • 用VBScript实现解压缩目录中的所有文件(Zip)
  • VBScript压缩单个文件为zip格式
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 彩票双色球历史开奖结果 - 频道导航
    Copyright © 2017 彩票双色球历史开奖结果 www.s9h6.com All Rights Reserved
  • 新规:续航150公里以下新能源车取消补贴 2019-10-11
  • 法国革命时代,女人流行穿什么 2019-10-11
  • 黑龙江省县(市、区)委统战部长培训班举办 2019-10-06
  • “夏季第一瓜”竟是它! 2019-10-06
  • 《阿古顿巴》藏语版在藏语卫视首播 2019-09-06
  • 晋中市“三同步”推动互联网治理创新 2019-08-27
  • 法媒:研究称美国人常用药物或增加抑郁风险 2019-08-27
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 黑彩稳赚不赔绝招 3d开组三特点 极速快乐十分是啥意思 pk10前后相加 彩票app 百人牛牛如何开挂下载 ◆爱购彩平台◆ 手机网络挣钱 天津时时彩哪个平台有 网上有极速快乐十分吗 不输本金的投注方案 可以竞猜独赢的app 胜平负计算器比分直播 摩卡868线上登录不了 双色球活动