Как бороться с пробелами в пути реестра Windows от ASP, используя RegWrite - PullRequest
1 голос
/ 08 декабря 2010

У меня проблема в том, что из ASP мне нужно записать в ключ реестра Windows, путь к которому содержит пробелы.WScript.Shell RegRead достаточно доволен моим ключом, но RegWrite это не нравится.Я проверил, используя другие (фиктивные) пути, и действительно похоже, что именно пробелы вызывают проблему.

<%
   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" 
%>

Получает: Недопустимый корень в разделе реестра "HKLM \ SOFTWARE \ Data AccessВесь мир \ Visual DataFlex \ 10.0 \ WebApp Server \ Web Applications \ DAW.Examples.Order10 \ Disable ".

Кто-нибудь знает, что нужно сделать, чтобы решить проблему?Как избежать пробелов?

Я пытался использовать аббревиатуру "HKLM" для "HKEY_LOCAL_MACHINE", дополнительные кавычки, тильды и другие замены для пробелов, но теперь у меня нет идей.: - (

TIA

Mike

1 Ответ

1 голос
/ 08 декабря 2010

Не думаю, что проблема в пробелах, но, скорее всего, в разрешениях.

Если я попробую ваш код, он отлично работает для ключей, находящихся в HKEY_CURRENT_USER, но я получаю ту же ошибку, что и вы, для ключей в HKEY_LOCAL_MACHINE. Однако действительная ошибка ACCESS_DENIED.

Самый простой способ, если вы скачаете Process Monitor от Microsoft, где вы сможете увидеть все операции реестра в реальном времени для каждого процесса вместе с любыми ошибками.

...