Par programmation modifier les variables d'environnement?
- Windows 7.
- C'est pour ma propre machine, de sorte qu'il n'a pas d'importance si elle nécessite des droits d'administration ou de quelque chose.
- De préférence en Python ou en .NET, mais je peux apprendre un peu de Win32 (C/C++) de la programmation si nécessaire.
Vous devez vous connecter pour publier un commentaire.
si vous souhaitez définitivement définissez la variable d'environnement, vous pouvez insérer la nouvelle valeur dans le registre. par exemple avec vbscript, ajoutez le chemin d'accès "c:\test" dans la variable PATH
Donc, si vous utilisez Python ou en d'autres langues, vous pouvez faire la même chose à l'aide de la langue de votre propre api/modules de lecture et d'écriture de registre
En C#, le code suivant crée un permanent de la variable d'environnement:
ou vous pouvez essayer un script Windows PowerShell; PowerShell est installé sur Windows 7 par défaut.
exécuter powershell.exe
Alors, par exemple, à partir de cmd.exe
(Ou un nouveau) powershell.exe
découvrez http://technet.microsoft.com/en-us/library/ff730964.aspx
WM_SETTINGCHANGE
message tel que décrit ici. Bon début.Pour quelqu'un d'autre vous cherchez un moyen rapide de ligne de commande réponse
SETX est disponible sur les serveurs windows (en mode natif, je pense - http://technet.microsoft.com/en-us/library/cc755104.aspx )
Son également disponibles dans la Windows 7 et 8 trousse à outils.
Path
. L'utilisateur et le systèmePath
valeurs ne doivent jamais être confondues, et le pourcentage de variables dans uneREG_EXPAND_SZ
valeur doit être laissé non développés. setx.exe ne pouvez pas faire tout cela. Ce qu'il peut faire, c'est de faire un horrible gâchis qui ne peuvent pas être annulées.Utilisation de l'Environnement de la classe comme ceci:
Modification par programme des variables d'environnement est uniquement pour la durée du programme. N'ont pas entendu parler de la modification de l'environnement à l'échelle du système et de le rendre efficace et puis. Je ne pense pas que faire se peut, que aurait besoin de fouiller au niveau privilégié et, éventuellement, de jouer avec le système de base pour y parvenir.
Même sous Unix, il ne peut pas être fait en dépit de quelques hacks pour l'atteindre. Je me souviens de voir le code que le fait de modifier les variables d'environnement sous MS-dos, en modifiant le format MSDOS _psp données de l'environnement de la structure, mais c'était un single-tâches système et 16 bits sans la moindre protection.
Pour résumer, je ne pense pas que vous pouvez, et il serait imprudent de le faire, il peut être perçue que si le système est sous une menace par un "cheval de troie" ou d'un "virus" en conséquence si vous tentez de le faire, de ne pas être seul qu'en tant qu'utilisateur, je ne voudrais pas d'un programme pour modifier la variable d'environnement système sans mon consentement! Assurez-vous, un programme peut écrire dans le registre de la rendre permanente, mais je voudrais quand même savoir quel est le but de celui-ci et pourquoi.