0

technetの例を使用して、HKLM \ Microsoft \ Windows \ CurrentVersion\RunからMyStartupExeというdword/文字列を読み取ろうとしています。空が返されます。この通常の例は機能します。

Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set oReg=GetObject( _
   "winmgmts:{impersonationLevel=impersonate}!\\" &_
    strComputer & "\root\default:StdRegProv")
strKeyPath = "Console"
strValueName = "HistoryBufferSize"
oReg.GetDWORDValue _
   HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
WScript.Echo "Current History Buffer Size: " & dwValue

それの私の適応は機能しません。文字列とdwordの値は、レジストリの探しているキーパスにあります。

const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject( _
   "winmgmts:{impersonationLevel=impersonate}!\\" &_
    strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
strValueName = "MyStartUpExe"
oReg.GetDWORDValue _
   HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
WScript.Echo "MyStartupExe" & dwValue
4

2 に答える 2

1

「MyStartUpExe」はREG_SZ値ではなく値である可能性が高いため、の代わりにREG_DWORDを使用する必要があります。GetStringValue()GetDWORDValue()

oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, value
WScript.Echo "MyStartUpExe" & value
于 2012-09-14T21:21:45.787 に答える
0

WMIStdRegProvクラスを参照してください。

またはShell.RegRead、値のデータ型がわからないレジストリ値を読み取るために使用することもできます。の戻りコードRegReadが0(成功)の場合、reg値が存在します。そうでない場合、戻りコードが一般的なエラーコードである場合&h800xxxxxなど、reg値は存在しません。OSアーキテクチャタイプを確認するには、値をクエリしWin32_Processor.Architectureます(「0」=「x86」または「9」=「x64」)。

于 2012-09-16T02:48:31.173 に答える