Come comportarsi con gli spazi in un percorso di registro di Windows da ASP utilizzando RegWrite
-
10-10-2019 - |
Domanda
Ho un problema in quanto da ASP ho bisogno di scrivere in una chiave del Registro di sistema di Windows il percorso che contiene spazi. Il WScript.Shell RegRead è abbastanza felice con la mia chiave, ma non lo fa RegWrite simile. Ho provato utilizzando altri percorsi (fittizie) e sembra davvero come stanno gli spazi che sono la causa del problema.
<%
Dim WSH, disable
Set WSH = CreateObject("WScript.Shell")
disable = Request("disable") ' disable will be 1 or 0
key = "HKEY_LOCAL_MACHINE\SOFTWARE\Data Access Worldwide\" & _
"Visual DataFlex\10.0\WebApp Server\Web Applications\" & _
"DAW.Examples.Order10\Disable"
WSH.RegWrite key, CInt( disable ), "REG_DWORD"
%>
Ottiene: root non valido nella chiave di registro "HKLM \ SOFTWARE \ Data Access Worldwide \ Visual DataFlex \ 10.0 \ Applications WebApp Server \ Web \ DAW.Examples.Order10 \ Disattiva"
.Qualcuno sa cosa fare per risolvere il problema? Come sfuggire gli spazi forse?
Ho provato con l'abbreviazione "HKLM" per "HKEY_LOCAL_MACHINE", citazioni extra, tilde e altre sostituzioni per gli spazi, ma ora sono a corto di idee. : - (
TIA
Mike
Soluzione
Non credo che il problema sono gli spazi, ma più probabilmente permessi.
Se provo il codice, funziona benissimo per le chiavi che risiedono in HKEY_CURRENT_USER, ma ottengo lo stesso errore, come si per chiavi in ??HKEY_LOCAL_MACHINE. L'errore vero è però ACCESS_DENIED.
Il modo più semplice è che se si scarica Process Monitor da Microsoft, dove si possono vedere tutte le attività del registro in tempo reale per ogni processo insieme con gli eventuali errori.