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
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.
.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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem hier war, dass das makro nicht über die Berechtigung zum schreiben in die registry.
Mehr Informationen in auf dieser Seite.
Ich Lesen könnte, die Schlüssel-Wert über das WScript Objekt das gut:
Schreiben (es sollte funktionieren, wenn Sie die Erlaubnis haben):
Wie ich es geschafft habe (da mein Skript scheint nicht über die notwendigen Berechtigungen verfügen):
In diesem letzten Beispiel wird der Benutzer aufgefordert, die benötigten Berechtigungen zu.
PS: HKLM ist eine Abkürzung für HKEY_LOCAL_MACHINE. Alle anderen root-key Namen haben einen ähnlichen Abkürzungen, die konsultiert werden kann, die in der Seite erwähnt an der Spitze.
Als praktisches Beispiel werde ich nach meinem Gebrauch dieser Ausdrücke zu aktivieren/deaktivieren USB-Massenspeicher (wenn Sie auf deaktivieren, wenn Sie aus aktivieren):
InformationsquelleAutor jony