Lesen und schreiben von/nach Registrierung in VBA

Sah ich diese Zeile in C# und ich bin versucht, Sie anzupassen, um VBA:

Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start", 4,Microsoft.Win32.RegistryValueKind.DWord);

Ich bin ziemlich verloren hier einige Fehler:

Laufzeit: 5 - Ungültiger Prozeduraufruf)

Wenn ich den Standard-i_Type string "REG_SZ" anstelle von "Start", dann bekomme ich einen regkey bezogenen Fehler:

Runtime - -2147024891[80070005] ungültige Wurzel

Mein code:

Dim i_RegKey As String, i_Value As String, i_Type As String
Dim myWS As Object
i_Type = "REG_SZ"  ' Optional
'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'write registry key
i_RegKey = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start"
i_Value = "4"
i_Type = "REG_DWORD"
myWS.RegWrite i_RegKey, i_Value, i_Type
Das VBA-äquivalent sollte .RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start", 4, "REG_DWORD". Dies wird aber nur funktionieren, wenn der user läuft die VBA-Rechte hat, ändern Sie die Registrierung auf HKEY_LOCAL_MACHINE.
Interessantes für Sie....
Alex: ich habe meinen code entsprechend Ihrem Eingang über die Angelegenheit. Aber ich bin noch immer der -2147024891[80070005] Ungültiger root-Fehler. Ist dies, weil die VBA-Skript wird nicht ausgeführt erhöhten? Ich als Benutzer die Rechte zum ändern der Registrierung. Vielleicht sollte ich stattdessen verwenden Sie ShellExecute um den Befehl zu senden.... ...Ich bin aus meiner Liga hier, so verzeihen Sie mir, wenn ich sage dumme Dinge.
Siddarth: ich habe es gelesen und es gab mir einen Einblick auf das, was ich tatsächlich Tue.
Siddarth & Axel: ich denke, dass ich jetzt undertand, warum ich immer diesen Fehler. Es ist kein registry-Eintrag in USBSTOR namens Start, nur eine namens Count.

InformationsquelleAutor jony | 2015-09-02

Schreibe einen Kommentar