Answers:
我不知道这些引号如何最终存储在该文件中,但我会认为这些引号不起作用(也许您是从Wordpress博客中复制出来的)。
除其他外,我认为应该是这样的:
[HKEY_CLASSES_ROOT\Folder\shell\PngCrush]
@="PNG Crush"
[HKEY_CLASSES-ROOT\Folder\shell\PngCrush\command]
@="E:\Programs\PNGCrush\crush.bat %1"
这不是注册表文件的有效语法,缺少标题。
在前面添加一行: Windows Registry Editor Version 5.00
如果您使用Unicode保存文件,请检查是否存在无效字符,这可能是问题所在。
只需编译所有答案以及我发现的一些额外信息即可。
第一行的标题:
Windows Registry Editor Version 5.00
例
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
允许的编码似乎也与Windows API字符串相对应,它们是:
注意:当文本编辑器说“ unicode”作为编码时,可能表示UTF-8,这是一种可变宽度编码,与内部Windows天真的不兼容。
注2(编辑):ASCII是7位,并且我所知道的所有使用中的处理器均为2位的幂,因此它将始终包裹在其他一些ASCII超集中,例如1252。#thingsyoulearnafteruni
看看这个网站,它帮助我解决了以下问题:“指定的文件不是注册表脚本” –编码如何破坏您的早晨
事实证明,编码会破坏您的早晨。看一下消息,我看到“……仅从…导入二进制注册表文件”,我想“为什么这东西认为它是二进制的?”。的确如此。我在TextPad中打开了备份文件,而不仅仅是单击Ctrl + S或“保存”,而是选择“另存为”。这样做可以显示此菜单,并且我突出了我的问题:
那就对了。没有我做任何事情,TextPad会将文件另存为Unicode。Regedit希望获取经过ANSI编码的.reg文件。所以我将Encoding更改为ANSI,保存了文件,再次运行,一切正常。这让我沮丧了20分钟,所以希望这可以帮助其他人。
我遇到了同样的问题,因为我将其另存为UTF-8-BOM。它应该是没有BOM(字节顺序标记)的UTF-8。值得注意的是。