为 Windows 7 创建 .reg 文件

Axi*_*ili 16 windows windows-registry windows-7

我创建了一个 .reg 文件,但是当我双击它时,它不想被导入。

指定的文件不是注册表脚本。您只能从注册表编辑器中导入二进制注册表文件。

这是 .reg 文件的内容

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

[HKEY_CLASSES-ROOT\Folder\shell\PngCrush\command]
@=”E:\Programs\PNGCrush\crush.bat %1”
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我吗?提前致谢

Tam*_*man 35

这不是注册表文件的有效语法,它缺少标头。

在前面添加一行: Windows Registry Editor Version 5.00

检查是否存在无效字符,如果您以 Unicode 保存文件,则可能是问题所在。

  • 这个答案是正确的。 (3认同)

小智 9

只是将所有答案与我发现的一些额外信息一起编译。

第一行标题: Windows Registry Editor Version 5.00

  • 由“CRLF”分隔的键之间的空行
  • 没有空格的键括号
  • 双引号中的值
  • 十六进制整数/单词值 - 字母显然是小写

例子

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
Run Code Online (Sandbox Code Playgroud)

允许的编码似乎也对应于 Windows API 字符串,它们是:

  • 8 位固定宽度:Windows-1252 - 与 ISO-8859-1 几乎相同
  • 16位定宽:UCS-2LE(little endian)——与UTF-16基本相同

注意:当文本编辑器对编码说“unicode”时,它可能意味着 UTF-8,这是一种与内部 Windows 不天真兼容的可变宽度编码。

注 2(编辑):ASCII 是 7 位的,我所知道的所有正在使用的处理器都是 2 位的幂,因此它总是会被包装在其他一些 ASCII 超集中,例如 1252。#thingsyoulearnafteruni


Der*_*ler 6

我不知道这些引用是如何在该文件中结束的,但我认为它们不起作用(也许您是从 Wordpress 博客中复制的)。

除此之外,我认为它应该是这样的:

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

[HKEY_CLASSES-ROOT\Folder\shell\PngCrush\command]
@="E:\Programs\PNGCrush\crush.bat %1"
Run Code Online (Sandbox Code Playgroud)