我试图让Windows识别我的程序的文件扩展名,但没有像往常一样运气。
这就是我正在做的事情,请告知我在哪里或我做错了什么 - 我想我的注册表位置或命名设置可能不正确:
样本名称
MyProg.exe = The name of the program.
%InstallPath% = Where the program will be installed.
.ext1 = 1st File Extension.
.ext2 = 2nd File Extension.
.ext3 = 3rd File Extension.
注册表位置(我已添加到的位置)
HKEY_CLASSES_ROOT\.ext1
HKEY_CLASSES_ROOT\.ext2
HKEY_CLASSES_ROOT\.ext3
HKEY_CLASSES_ROOT\.ext1\DefaultIcon,2
HKEY_CLASSES_ROOT\.ext1\shell\open\command\%InstallPath%\MyProg.exe %1
之后我有点失落:(
文件图片
我已经从XE IDE Resources Menu添加了3个图标文件,并将它们命名为2,3,4。我想如果我有一个名为1的图标,它将覆盖项目图标?
我希望在从未见过我的程序的机器上使用Inno Setup等安装程序(看看安装是否完美无缺)之前,让这些工作正常。
我找不到任何易于遵循的指南:(
答案 0 :(得分:5)
您正在设置注册表项错误。您需要将文件扩展名与ProgID关联,然后将ProgID与您的应用相关联,如下所示:
HKEY_CLASSES_ROOT\.ext1
(Default) = "ext1File"
HKEY_CLASSES_ROOT\.ext2
(Default) = "ext2File"
HKEY_CLASSES_ROOT\.ext3
(Default) = "ext3File"
HKEY_CLASSES_ROOT\ext1File\DefaultIcon
(Default) = "%InstallPath%\MyProg.exe,2"
HKEY_CLASSES_ROOT\ext1File\shell\open\command
(Default) = ""%InstallPath%\MyProg.exe" "%1""
HKEY_CLASSES_ROOT\ext2File\DefaultIcon
(Default) = "%InstallPath%\MyProg.exe,3"
HKEY_CLASSES_ROOT\ext2File\shell\open\command
(Default) = ""%InstallPath%\MyProg.exe" "%1""
HKEY_CLASSES_ROOT\ext3File\DefaultIcon
(Default) = "%InstallPath%\MyProg.exe,4"
HKEY_CLASSES_ROOT\ext3File\shell\open\command
(Default) = ""%InstallPath%\MyProg.exe" "%1""
阅读以下文档以获取更多详细信息:
File Types and File Associations
仅供参考,您不应直接向HKEY_CLASSES_ROOT
写入数据。写入HKEY_CURRENT_USER\Software\Classes
和/或HKEY_LOCAL_MACHINE\Software\Classes
,取决于您是希望按用户还是机器全局注册。请阅读以下文档,了解更多详细信息。