2010-12-08 21 views
1

J'ai un problème en ce que de ASP J'ai besoin d'écrire dans une clé de registre Windows le chemin d'accès qui contient des espaces. Le WScript.Shell RegRead est assez content de ma clé, mais RegWrite ne l'aime pas. J'ai testé en utilisant d'autres chemins (factices) et on dirait que ce sont les espaces qui causent le problème.Comment faire face à des espaces dans un chemin de registre Windows à partir d'ASP en utilisant 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" 
%> 

gets: racine non valide dans la clé de Registre "HKLM \ SOFTWARE \ Data Access Worldwide \ Visual DataFlex \ 10.0 \ WebApp Server \ Applications Web \ DAW.Examples.Order10 \ Désactiver".

Quelqu'un sait quoi faire pour résoudre le problème? Comment échapper aux espaces peut-être?

J'ai essayé d'utiliser l'abréviation "HKLM" pour "HKEY_LOCAL_MACHINE", des guillemets supplémentaires, des tildes et d'autres substitutions pour les espaces, mais maintenant je n'ai plus d'idées. :-(

TIA

Mike

Répondre

1

Je ne pense pas que le problème sont des espaces, mais plus probablement les autorisations.

Si j'essaie votre code, il fonctionne très bien pour les clés résidant dans HKEY_CURRENT_USER , mais je reçois la même erreur que vous pour les clés dans HKEY_LOCAL_MACHINE L'erreur réelle est cependant ACCESS_DENIED

Le moyen le plus simple est si vous téléchargez Process Monitor de Microsoft, où vous pouvez voir tous les activés de registre en temps réel pour chaque processus ainsi que d'éventuelles erreurs.

+0

Carko - merci! Intéressant ... mais je l'ai essayé avec "HKEY_LOCAL_MACHINE \ SOFTWARE \ Vodafone \ WwanSdk \ Wan \ Timeouts \ testVal" (pas d'espaces, mais un bon chemin profond dans HKLM) et cela a fonctionné parfaitement, c'est pourquoi je pense que ce sont les espaces . Je viens d'essayer de donner à tout le monde le contrôle total sur HKLM, mais pas de changement. :-( –

+0

Ah, oui, vous avez raison, en regardant dans Process Monitor, l'erreur semble en effet être refusée, accordant explicitement "Full Control" au groupe "Users" (juste pour voir ce qu'il s'est passé) et tirant Par les Grands Dieux de l'Internet ... cela a fonctionné! Merci Carko! Vous êtes une star! :-) –

+0

BTW, plutôt que l'ensemble du groupe "Utilisateurs", le crucial "Contrôle total" La permission est accordée pour le "Compte Invité Internet" "IUSR_XXXXX ...". –