À l'aide de Javascript dans un fichier HTA de lecture/écriture du registre de Windows
Je suis actuellement en train d'écrire du code Javascript dans le but de lire et d'écrire à partir de la base de registre Windows dans un fichier HTA. Voici le code actuel je suis aide à l'écriture:
writeInRegistry = function (sRegEntry, sRegValue) {
Regpath = "HKEY_LOCAL_MACHINE\\Software\\CompanyName\\CompanyValues\\" + sRegEntry;
try {
var oWSS = new ActiveXObject("WScript.Shell");
oWSS.RegWrite(Regpath, sRegValue, "REG_DWORD");
oWSS = null;
} catch (e) {
alert('Error trying to write "' + sRegValue + '" to registry entry "' + sRegEntry + '"');
}
}
Malheureusement quand j'ai vérifier les valeurs dans regedit, elles restent inchangées. J'ai pris soin de vérifier que le chemin d'accès du registre est exactement la même que je l'ai en javascript. Il ne retourne pas une erreur, donc je suis en supposant que le chemin d'accès est correct.
J'ai aussi tenté pour essayer
var oWSS = WScript.CreateObject("WScript.Shell");
visé dans le présent msdn page, au lieu de
var oWSS = new ActiveXObject("WScript.Shell");
mais qui m'a donné le plus de problèmes.
Toute aide est très appréciée! Merci!
- J'ai proposé une autre approche, sans tester votre code en premier. Cependant, après avoir testé, j'ai complètement changé ma réponse originale à cette question.
- J'ai couru votre code et il a parfaitement fonctionné. Assurez-vous que vous exécutez l'éditeur du registre (regedit) ainsi que votre HTA application en tant qu'Administrateur, pour observer les changements que votre code.
Vous devez vous connecter pour publier un commentaire.
J'ai écrit un échantillon HTA HTML de l'Application, y compris des fonctions writeinRegistry() et readFromRegistry() fonction sur la base de votre code. Il a écrit une valeur dans le registre et récupéré. La question est de savoir d'où vient le placer. Après une recherche dans la base de registre, je l'ai trouvé sous la clé de registre HKEY_CURRENT_USER\VirtualStore\MACHINE\SOFTWARE\Wow6432None\CompanyName\CompanyValues. C'est parce que:
Alors, j'ai créé un raccourci Windows pour C:\Windows\System32\MSHTA.exe TheNameOfMyScript.hta. Pour s'assurer que je courais la version 64 bits et puis j'ai exécuté le raccourci avec l'altitude (Exécutez le raccourci en tant qu'Administrateur). Après cela, la clé de registre sous la clé HKLM direction de la mise à jour.
J'ai trouvé que lorsque vous mettez à jour les clés de registre dans le code tout en
regedit.exe
est ouvert/running, c'est une bonne idée d'appuyer surF5
dansregedit
l'actualiser après le code a couru.