1

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 Worldwide \ Visual DataFlex \ 10.0 \ WebApp Server \ Web Applications \ DAW.Examples.Order10\Disable"の無効なルート。

誰かが問題を解決するために何をすべきか知っていますか?多分スペースを脱出する方法は?

「HKEY_LOCAL_MACHINE」の「HKLM」の省略形、余分な引用符、チルダ、およびスペースのその他の置換を使用してみましたが、今はアイデアがありません。:-(

TIA

マイク

4

1 に答える 1

1

問題はスペースではないと思いますが、おそらく権限です。

コードを試してみると、HKEY_CURRENT_USERにあるキーでは正常に機能しますが、HKEY_LOCAL_MACHINEにあるキーでも同じエラーが発生します。ただし、実際のエラーはACCESS_DENIEDです。

最も簡単な方法は、MicrosoftからProcess Monitorをダウンロードすることです。ここでは、各プロセスのすべてのリアルタイムレジストリアクティビティとエラーを確認できます。

于 2010-12-08T01:48:03.607 に答える