StdRegProv类所属方法的使用(之五)

(10)        SetDWordValue
为指定键值名称的键值设置键值类型为REG_DWORD的键值数值。

uint32 SetDWORDValue(
  [in]  uint32 hDefKey = 2147483650,
  [in]  string sSubKeyName,
  [in]  string sValueName,
  [in]  uint32 uValue
);

例1:为键值名称为DWordValue的键值赋予类型为REG_DWORD的键值数值11(0x0000000b)。该键值属于HKEY_LOCAL_MACHINE\SOFTWARE\MyCompany子键。本例中该值被设置为一个十进制整数,但可以使用任何能被VBScript识别的其他类型的基数(如16进制数)。

Const HKEY_LOCAL_MACHINE = &H80000002
strComputer        = "."
sMethod                = "SetDWordValue"

Set oRegistry        = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
                strComputer & "/root/default:StdRegProv")

Set oMethod        = oRegistry.Methods_(sMethod)
Set oInParam        = oMethod.inParameters.SpawnInstance_()

oInParam.hDefKey = HKEY_LOCAL_MACHINE
oInParam.sSubKeyName = "SOFTWARE\MyCompany"
oInParam.sValueName = "DWordValue"
oInParam.uValue = 11

Set oOutParam = oRegistry.ExecMethod_(sMethod, oInParam)
If (oOutParam.ReturnValue = 0) And (Err.Number = 0) Then
    Wscript.Echo "DWord value added successfully"
Else
    Wscript.Echo "An error occurred"
End If


例2:本例直接调用SetDWordValue。
Const HKEY_LOCAL_MACHINE = &H80000002
sComputer        = "."
Set oRegistry        = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
                sComputer & "/root/default:StdRegProv")

hDefKey                = HKEY_LOCAL_MACHINE
sSubKeyName        = "SOFTWARE\MyCompany"
sValueName        = "DWordValue"
uValue                = 11

oOutParam = oRegistry.SetDWordValue(hDefKey, sSubKeyName, sValueName, uValue)
If (oOutParam = 0) And (Err.Number = 0) Then
    Wscript.Echo "DWord value added successfully"
Else
    Wscript.Echo "An error occurred"
End If


例3:相应的PS程序。
$HKEY_LOCAL_MACHINE = "&H80000002"
$computer = "."
$namespace = "root\default"

$oRegistry = get-wmiobject -list -namespace $namespace -ComputerName $computer | where-object { $_.name -eq "StdRegProv" }

$hDefKey = $HKEY_LOCAL_MACHINE
$sSubKeyName = "SOFTWARE\MyCompany"
$sValueName = "DWordValue"
$uValue = 11

$oOutParam = $oRegistry.SetDWordValue($hDefKey, $sSubKeyName, $sValueName, $uValue)
"Retrun Colde is : " + $oOutParam.ReturnValue


(11)        SetExpandedStringValue
为指定键值名称的键值设置键值类型为REG_EXPAND_SZ的键值数值
uint32 SetExpandedStringValue(
  [in, optional]  uint32 hDefKey = 2147483650,
  [in]            string sSubKeyName,
  [in]            string sValueName,
  [in]            string sValue
);

例1:为键值名称为ExpandedStringValue的键值赋予类型为REG_EXPAND_SZ的键值数据“%SystemRoot%\MyCompany”该键值属于HKEY_LOCAL_MACHINE\SOFTWARE\MyCompany子键。
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer        = "."
sMethod                = "SetExpandedStringValue"

Set oRegistry        = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
                strComputer & "/root/default:StdRegProv")

Set oMethod        = oRegistry.Methods_(sMethod)
Set oInParam        = oMethod.inParameters.SpawnInstance_()
oInParam.hDefKey = HKEY_LOCAL_MACHINE
oInParam.sSubKeyName = "SOFTWARE\MyCompany"
oInParam.sValueName = "ExpandedStringValue"
oInParam.sValue = "%SystemRoot%\MyCompany"

Set oOutParam = oRegistry.ExecMethod_(sMethod, oInParam)

If (oOutParam.ReturnValue = 0) And (Err.Number = 0) Then
    Wscript.Echo "Expanded String value added successfully"
Else
    Wscript.Echo "An error occurred"
End If

例2:本例直接调用SetExpandedStringValue。
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer        = "."

Set oRegistry        = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
                strComputer & "/root/default:StdRegProv")

hDefKey = HKEY_LOCAL_MACHINE
sSubKeyName = "SOFTWARE\MyCompany"
sValueName = "ExpandedStringValue"
sValue = "%SystemRoot%\MyCompany"

oOutParam = oRegistry.SetExpandedStringValue(hDefKey,sSubKeyName, _
sValueName,sValue)
WScript.Echo "The return code is : " & oOutParam


例3:相应的PS程序
$HKEY_LOCAL_MACHINE = "&H80000002"
$computer = "."
$namespace = "root\default"

$oRegistry = get-wmiobject -list -namespace $namespace -ComputerName $computer | where-object { $_.name -eq "StdRegProv" }

$hDefKey = $HKEY_LOCAL_MACHINE
$sSubKeyName = "SOFTWARE\MyCompany"
$sValueName = "ExpandedStringValue"
$sValue = "%SystemRoot%\MyCompany"

$oOutParam = $oRegistry.SetExpandedStringValue($hDefKey, $sSubKeyName, $sValueName, $sValue)
"Retrun Colde is : " + $oOutParam.ReturnValue


(12)        SetMultiStringValue
为指定键值名称的键值设置键值类型为REG_MULTI_SZ的键值数值,该数值是一个多个字符串的数组。注意,在Windows 2000上如果使用REGEDT32命令来查看,每个字符串将以单行显示;如果使用REGEDIT来查看,将显示一个连续的字符串。
uint32 SetMultiStringValue(
  [in]  uint32 hDefKey = 2147483650,
  [in]  string sSubKeyName,
  [in]  string sValueName,
  [in]  Variant sValue[]
);

例1:为键值名称为MultiStringValue的键值赋予类型为REG_MULTI_SZ的键值数据("www","swynk","com" ),该键值数据是一个由多个字符串组成的数组,该键值属于HKEY_LOCAL_MACHINE\SOFTWARE\MyCompany子键。
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer        = "."
sMethod                = "SetMultiStringValue"

Set oRegistry        = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
                strComputer & "/root/default:StdRegProv")

Set oMethod        = oRegistry.Methods_(sMethod)
Set oInParam        = oMethod.inParameters.SpawnInstance_()
oInParam.hDefKey = HKEY_LOCAL_MACHINE
oInParam.sSubKeyName = "SOFTWARE\MyCompany"
oInParam.sValueName = "MultiStringValue"
oInParam.sValue = Array("www","swynk","com")

Set oOutParam = oRegistry.ExecMethod_(sMethod, oInParam)
If (oOutParam.ReturnValue = 0) And (Err.Number = 0) Then
    Wscript.Echo "MultiString value added successfully"
Else
    Wscript.Echo "An error occurred"
End If


例2:本例直接调用SetMultiStringValue。
Const HKEY_LOCAL_MACHINE = &H80000002
sComputer        = "."

hDefKey                = HKEY_LOCAL_MACHINE
sSubKeyName                = "SOFTWARE\MyCompany"
sValueName        = "MultiStringValue"
sValue                = Array("www","swynk","com")

Set oRegistry        = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
                sComputer & "/root/default:StdRegProv")

oOutParam = oRegistry.SetMultiStringValue(hDefKey,sSubKeyName,sValueName,sValue)
WScript.Echo "The return code is : " & oOutParam


例3:相应的PS程序。
$HKEY_LOCAL_MACHINE = "&H80000002"
$computer = "."
$namespace = "root\default"

$oRegistry = get-wmiobject -list -namespace $namespace -ComputerName $computer | where-object { $_.name -eq "StdRegProv" }

$hDefKey = $HKEY_LOCAL_MACHINE
$sSubKeyName = "SOFTWARE\MyCompany"
$sValueName = "MultiStringValue"
$sValue        = ("www","swynk","com")

$oOutParam = $oRegistry.SetMultiStringValue($hDefKey, $sSubKeyName, $sValueName, $sValue)
"Retrun Colde is : " + $oOutParam.ReturnValue

 

本文转载自 http://bbs.winos.cn/viewthread.php?tid=71078

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值