老问题——7.5 个月没有答案——但以下内容可能会帮助未来的谷歌用户(像我一样)。
HKEY_CLASSES_ROOT 是combined view of
- HKEY_本地机器\软件\类
- HKEY_当前用户\软件\类。
您不应该写入 HKEY_CLASSES_ROOT,而应以只读方式使用它。另外,建议的做法是写入 HKEY_CURRENT_USER\Software\Classes 而不是 HKEY_LOCAL_MACHINE,除非您确实需要为所有用户进行设置。
微软的文档看起来相当冗长和分散,所以我花了很长时间才确定我自己的小应用程序到底需要做什么。但是,最好还是先尝试一下官方文档(除非有人可以向我们指出一个可以更好解释事情的地方),如果无法理解,稍后再提出问题。
Microsoft 关于此领域的文档的入口点是“桌面应用程序技术”,位于https://msdn.microsoft.com/library/windows/desktop/bg126469.aspx https://msdn.microsoft.com/library/windows/desktop/bg126469.aspx
对于文件类型注册,它引导我“实现自定义文件格式”:https://msdn.microsoft.com/en-us/library/windows/desktop/ff521657(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ff521657(v=vs.85).aspx
从那里进入“文件类型和文件关联”,子菜单涵盖您需要的所有内容(以及更多)。
请记住写入 HKCU\Software\Classes。似乎当 HKEY_CLASSES_ROOT (HKCR) 在文档中编写时,它通常只是引用 (HKCU|HKLM)\Software\Classes 的便捷方式。
关于“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths”或“HKEY_CLASSES_ROOT\Applications”:
MS 文档解释了它们与您已使用的密钥的关系。 (我仍在思考这个问题,所以无法提供更直接的解释。)
有些地方似乎说“App Paths”是首选,但实际上您可能需要同时使用两者,因为“App Paths”实际上只是关于paths,以及诸如此类的事情支持的类型 and 友好的应用程序名称仅位于“HK(LM|CU)\Classes\Applications”中。