À l'aide de variables d'environnement windows que les valeurs du registre dans Visual Studio Installer
Hey, je veux utiliser les variables d'environnement windows comme valeur pour une entrée de registre. Malheureusement, je ne peut pas simplement écrire qqch comme %systemroot%\system32\MyScreensaver.scr
.
Comme vous pouvez le deviner, je tiens à souligner certains reg valeurs à mon propre application, tels que la fonction de démarrage et d'économiseur d'écran et quelques autres choses.
Des idées?
D'autres façons de définir un programme de démarrage automatique et réglage d'un particulier économiseur d'écran à l'aide de VS-installer sont les bienvenus, aussi 🙂
J'ai ajouté ma réponse qui ne nécessite pas de codage. Ma réponse est signifié plus pour quelqu'un qui ne cherche pas à coder quelque chose dans une application, mais plus utilisé par les administrateurs réseau. 😉
J'ai ajouté ma réponse qui ne nécessite pas de codage. Ma réponse est signifié plus pour quelqu'un qui ne cherche pas à coder quelque chose dans une application, mais plus utilisé par les administrateurs réseau. 😉
OriginalL'auteur Martin Booka Weser | 2011-05-23
Vous devez vous connecter pour publier un commentaire.
Le registre de Windows prend en charge ce mode natif avec le
REG_EXPAND_SZ
type de valeur de registre.Suffit d'utiliser
REG_EXPAND_SZ
au lieu deREG_SZ
lorsque vous souhaitez incorporer des variables d'environnement dans la valeur de clé de registre.Voici un exemple de code C# de l'accès à un
REG_EXPAND_SZ
et l'extension est gérée automatiquement:Voici un exemple de création d'un extensible valeur de registre:
D'autres plates-formes ou des langages de script ont d'autres mécanismes à l'appui de cette. Ici, c'est le faible niveau Win32 description de
REG_EXPAND_SZ
:OriginalL'auteur Rick Sladkey
Vous pouvez utiliser le programme d'installation de Windows formaté type. Par exemple, votre valeur de registre peut être:
De cette façon programme d'installation de Windows va automatiquement régler la variable d'environnement lors de l'installation.
OriginalL'auteur user527987
C'est un peu délicat, mais très facile à faire. Cet exemple vous permettra d'ouvrir un certain type de fichier (*.de test) avec un programme (Notepad++) qui réside dans un répertoire spécifique. J'ai utilisé ce pour un scénario sur mon Windows 2008 server exécutant Bureau à Distance (AKA Terminal Server), pour permettre à chaque utilisateur d'utiliser un programme installé PAR compte d'utilisateur de sorte que les différents paramètres pourraient être utilisés par l'utilisateur (ex: *.les fichiers ini situé dans le répertoire apps). Remarque: ne Pas que cela importe, mais le dossier "programmes" est caché, de sorte que les utilisateurs ne peuvent pas voir.
L'étape 1. SI vous utilisez des profils obligatoires assurez-vous de changer le NTUSER.HOMME de fichier NTUSER.DAT.
L'étape 2. Ouvrez une session dans le profil que vous souhaitez modifier à l'aide de Remote Desktop Client.
L'étape 3. Ouvrez regedit et supprimez les clés suivantes si elles existent.
L'étape 4. Créez un nouveau fichier texte et nommez-le "d'origine.reg". Remplir avec la suivante...
L'étape 5. Actualisation de la base de registre (F5) et la recherche de la nouvelle clé. Devrait voir la touche "command" avec "(par Défaut)" valeur vide. Dans la touche "command" ajouter un nouveau "Valeur de Chaîne Extensible" appelé "Nouvelle Valeur #1". Définissez la valeur de l'application de chemin "Y:\%username%\programs\Notepad++\notepad++.exe" "%1". Ensuite exporter la touche "command" sur le bureau "élargi.reg".
L'étape 6. Modifier l'étendue".reg" fichier dans le bloc-notes et copier toutes les données après la "Nouvelle Valeur #1". Ex: =hex(2):22...
L'étape 7. Replier.reg le fichier et ouvrez le "d'origine.reg" fichier "puis sur" remplacer la commande par défaut (qui est vide "") avec la nouvelle valeur hexadécimale nous avons dans notre presse-papiers. Le fichier "original.reg" devrait ressembler à la suivante aujourd'hui...
L'étape 8. Maintenant que nous avons élargi notre variable prêt à go permet simplement d'ajouter une extension à associer à l'application. Ajoutez ce qui suit à l ' "original.reg" fichier de la faire ressembler à la suivante...
L'étape 9. Ouvrez regedit et supprimez les clés suivantes si elles existent. (Oui encore)... Maintenant, le registre est comme nous n'avons jamais fait quoi que ce soit et nous avons un fichier de registre de prêt à insérer dans le registre!
L'étape 10. Si vous souhaitez appliquer le profil actuel puis EXÉCUTEZ LE FICHIER de REGISTRE "d'origine.reg" et l'insérer dans le registre.
Et c'est tout! Maintenant, tous les *.les fichiers de test avec "Y:\%username%\programs\Notepad++\notepad++.exe". Allez vérifier sur le registre et de voir la nouvelle entrée par défaut.
OriginalL'auteur Arvo Bowen
Sur la ligne de commande vous pouvez utiliser le Commande Reg add (intégré à Windows) pour définir les valeurs de registre qui contient les variables d'environnement.
Voir ici: Comment utiliser REG_EXPAND_SZ à partir de la ligne de commande?
OriginalL'auteur rogersillito
Ce une expansion sur Rick Sladkey réponse:
Il avait répondu à REG_EXPAND_SZ vous permettra d'utiliser les variables d'Environnement qui est correct, mais il convient également de noter que certains de registre fonctionnalités ne fonctionne qu'avec l'entrée par Défaut d'une touche. Par exemple, disons que vous souhaitez configurer une commande du menu contextuel dans le shell Windows appelée Exemple (accessible lors du clic droit de la souris sur le fond d'un dossier):
et la commande à saisir est:
Cela ne fonctionne que si l'entrée par défaut est REG_EXPAND_SZ alors que les entrées par défaut créé par Regedit lors de la création de la clé sont REG_SZ. Si vous êtes à l'aide de Regedit, vous allez avoir à faire des acrobaties pour convertir l'entrée par défaut de REG_SZ pour REG_EXPAND_SZ Regedit ne peut pas le faire lui-même. Ici est le travail nécessaire pour ce faire:
Pour en revenir à mon exemple, à l'intérieur de la touche de commande, créer un REG_EXPAN_SZ entrée. Double-cliquez dessus et entrez votre commande de choix. Par exemple:
L'entrée que vous venez de créer ne sera pas l'entrée par défaut et à ce stade de la coquille peut pas l'exécuter. Pour résoudre ce problème, cliquez-droit sur la commande de la clé de registre et de les exporter en tant que commande.reg. Exporter votre fichier reg devrait ressembler à ceci:
Évidemment le hachage vont varier si vous êtes à l'aide d'une autre commande. Pour convertir l'entrée REG_EXPAND_SZ dans l'entrée par défaut, il suffit de supprimer le @ = "ligne" et renommer
à
(remarque il n'y a pas de guillemets autour du @).
Une fois que vous avez fait de votre mod, juste de commande de fusion.reg et l'entrée par défaut sera désormais en REG_EXPAND_SZ format.
OriginalL'auteur thebunnyrules
Utiliser une chaîne extensible
DWORD = dword: Chaîne Extensible = hex(2): Multi String = hex(7):
Une valeur DWORD est un 32 bits entier non signé (gamme: 0 à 4294967295 en décimal) Dans le registre, une valeur DWORD commence toujours par 0x. Dans le registre, DWORD ont toujours des 8 chiffres qui suivent 0x. Cela peut être au format décimal ou en hexadécimal, 1000 peut être écrite comme suit: 0x00001000 ou 0x000003e8
DWORDS ne peuvent utiliser que les chiffres de 0 à 9. Chaînes de caractères, de tout type, toujours utiliser des caractères ASCII, dans ACSII 1000 ne peut être écrite comme 31,30,30,30 Pour le type de données String, ASCII fonctionne en tâche de fond sans vous même le savoir. C'est parce que l'ordinateur ne comprends 1s et 0s. Pour de Chaîne Extensible et de Multiples types de données Chaîne, ces enregistrer vos entrées comme une série de codes ASCII dans un format hexadécimal, séparés par des virgules et hex zéros. Ainsi, une Chaîne Extensible de 1000 serait: hex(2):31,00,30,00,30,00,30,00
Donc, nous allons convertir %PROGRAMFILES% dans une chaîne extensible. Tout d'abord, téléchargez ceci: https://hotfile.com/dl/244097278/55aa086/ASCII_2_HEX_Conversion_Tool.7z.html
Maintenant ouvert que dans n'importe quel navigateur moderne. Mettre le répertoire %PROGRAMFILES% dans l'ASCII à cocher, puis sélectionnez l'encoder. Il vous donnera %25%50%52%4%47%52%41%4D%46%49%4C%45%53%25 Copier coller dans un éditeur de texte, déplacez le premier % à la fin. Sélectionnez la commande de remplacement, trouver tous les "%" et remplacer par ",00,". Supprimer la virgule à la fin. Vous devriez obtenir: 25,00,50,00,52,00,4 F,00,47,00,52,00,41,00,4 D,00,46,00,49,00,4 C,00,45,00,53,00,25,00 Et enfin, hex(2):25,00,50,00,52,00,4 F,00,47,00,52,00,41,00,4 D,00,46,00,49,00,4 C,00,45,00,53,00,25,00
Fait.
Avez-vous déjà essayé de convertir un curieux hex entrée de registre en ASCII et a échoué lamentablement. Cette leçon contient toutes les connaissances nécessaires à désosser tout hex codé de l'entrée de registre n'est pas chiffré. Amusez-Vous!
OriginalL'auteur DarkReverser