2016-08-21 1 views
1

Schreiben Ich habe eine Anwendung, die mehrere Konfigurationsdateien muss geschrieben werden, um reg_sz alsmehrere Werte Reg_SZ

"sEndorsement"="C:\\x\\file1.txt 
C:\\x\\file2.txt" 

dies über regedit Hinzufügen nicht funktioniert hat. Ich habe versucht, eine Vbscript mit so wie unten zu tun,

Dim myval 
myval = "C:\\x\\file1.txt" & VbCrLf _ 
& "C:\\x\\file2.txt" & VbCrLf _ 
& "C:\\y\\file3.dll" & VbCrLf 

Dim WSHShell 
set WSHShell = CreateObject("WScript.Shell") 
WSHShell.RegWrite "HKEY_USERS\abc\def\TheSelectedFiles", myval, "REG_SZ" 

Aber es endete immer noch als einzige Zeile in der kommenden up .. Ich bin mir nicht sicher .. Gibt es jemand kann mir dabei helfen ?? Danke

Antwort

3

Für mehrere Zeilen, das heißt REG_MULTI_SZ nicht REG_SZ. Sie können Schlüssel nicht im Stammverzeichnis von HKEY_USERS erstellen. Sie müssen den Unterschlüssel .Default verwenden. Die Werte erscheinen in derselben Zeile, aber wenn Sie auf den Wert doppelklicken, können Sie sehen, dass es 3 Zeilen gibt.

Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\.\root\default:StdRegProv") 
Const HKEY_CLASSES_ROOT = &H80000000 
Const HKEY_CURRENT_USER = &H80000001 
Const HKEY_LOCAL_MACHINE = &H80000002 
Const HKEY_USERS =   &H80000003 
Const HKEY_CURRENT_CONFIG = &H80000005 

strKeyPath = ".DEFAULT\abc\def\TheSelectedFiles" 
MultValueName = "sEndorsement" 
iValues = Array("C:\x\file1.txt", "C:\x\file2.txt", "C:\y\file3.dll") 
objRegistry.CreateKey HKEY_USERS,strKeyPath 
objRegistry.SetMultiStringValue HKEY_USERS,strKeyPath,MultValueName,iValues 
+0

Dank @RandySchuman – thuk