web-dev-qa-db-fra.com

Création d'un fichier .reg pour Windows 7

J'ai créé un fichier .reg mais lorsque je double-clique dessus, il ne veut pas être importé.

Le fichier spécifié n'est pas un script de registre. Vous pouvez uniquement importer des fichiers de registre binaires à partir de l'éditeur de registre.

Voici le contenu du fichier .reg

[HKEY_CLASSES_ROOT\Folder\Shell\PngCrush]
@=”PNG Crush”

[HKEY_CLASSES-ROOT\Folder\Shell\PngCrush\command]
@=”E:\Programs\PNGCrush\crush.bat %1”

Quelqu'un pourrait-il m'aider? Merci d'avance

15
Aximili

Je ne sais pas comment ces citations se sont retrouvées dans ce fichier, mais je suppose que cela ne fonctionne pas (peut-être l'avez-vous copié sur un blog Wordpress).

Outre tout le reste, je pense que ça devrait être comme ça:

[HKEY_CLASSES_ROOT\Folder\Shell\PngCrush]
@="PNG Crush"

[HKEY_CLASSES-ROOT\Folder\Shell\PngCrush\command]
@="E:\Programs\PNGCrush\crush.bat %1"
5
Der Hochstapler

Ce n'est pas la syntaxe valide d'un fichier de registre, il manque l'en-tête.

Ajoutez une ligne devant avec: Windows Registry Editor Version 5.00

Vérifiez si des caractères non valides sont à l'origine du problème si vous avez enregistré le fichier au format Unicode.

30
Tamara Wijsman

Il suffit de compiler toutes les réponses avec quelques informations supplémentaires que j'ai découvertes.

En-tête sur la première ligne: Windows Registry Editor Version 5.00

  • Une ligne vide entre les clés délimitées par "CRLF"
  • supports de touches sans espaces
  • valeurs entre guillemets
  • nombre entier/mot en hexadécimal - minuscule pour les lettres apparemment

Exemple

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\MyOrg]

[HKEY_LOCAL_MACHINE\SOFTWARE\MyOrg\MyKey]
"My Value"="Some String"
"My Flag or Integer"=dword:00000001

Les encodages autorisés semblent également correspondre aux chaînes de l'API Windows qui sont:

  • Largeur fixe 8 bits: Windows-1252 - presque identique à ISO-8859-1
  • Largeur fixe 16 bits: UCS-2LE (little endian) - essentiellement identique à UTF-16

Remarque: lorsqu'un éditeur de texte dit "unicode" pour le codage, cela signifie probablement UTF-8, un codage à largeur variable non compatible naïvement avec Windows interne.

Note 2 (edit): ASCII est de 7 bits et tous les processeurs que je connais sont d’une puissance de 2 bits, donc il sera toujours encapsulé dans un autre ASCII sur-ensemble. comme 1252. #thingsyoulearnafteruni

7
Seth

Jetez un coup d’œil à ce site, cela m’a aidé à résoudre le problème suivant: "Le fichier spécifié n’est pas un script de registre" - Comment le codage peut ruiner votre matinée

Il s'avère que l'encodage peut gâcher votre matinée. En regardant le message, j’ai vu le message "… n’importer que les fichiers de registre binaires de…" et j’ai pensé: "Pourquoi cette chose pense-t-elle qu’elle est binaire?". Pourquoi, en effet. J'ai ouvert le fichier de sauvegarde dans TextPad et plutôt que de simplement appuyer sur Ctrl + S ou Enregistrer, j'ai choisi "Enregistrer sous". Cela a présenté ce menu et j’ai mis en évidence mon problème:

C'est vrai. Sans que je fasse quoi que ce soit, TextPad allait enregistrer ce fichier au format Unicode. Regedit s'attend à obtenir des fichiers .reg encodés en ANSI. J'ai donc modifié l'encodage en ANSI, sauvegardé le fichier, l'avoir exécuté à nouveau et tout a bien fonctionné. Cela m'a causé de la frustration pendant 20 bonnes minutes, alors espérons que cela aidera quelqu'un d'autre.

4

J'ai eu le même problème parce que je l'ai enregistré en tant que UTF-8-BOM. Il devrait être UTF-8 sans BOM (Byte Order Mark). Cela vaut la peine de noter.

1
Paweł Walaszek

Vous pouvez également utiliser le tilitaire REG pour manipuler le registre via une ligne de commande, si cela répond à vos besoins.

0
lrosa