Windows有一种模糊且明确的方式来声明在Windows注册表中注册应用程序的标准。
按照官方文档进行应用程序注册, Microsoft建议在以下位置注册应用程序
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exe
但是,开发人员似乎并未遵循此建议,因为在我的系统上尚未注册该密钥时,还没有注册该密钥。
HKEY_CURRENT_USER\Software\Classes\MyApp
和
HKEY_CURRENT_USER\Software\Classes\Applications\MyApp.exe
上面的每个键都有不同的结构,因此也有不同的选项(即,一个键提供SupportedTypes,而另一个键则不可用)。在这些不同的密钥下注册应用程序有什么区别?在什么情况下您会选择一个而不是另一个?
是的,注册表中有多个位置,您可以在其中放置应用程序信息,使用哪个键取决于您要注册的内容/原因。
我认为主要的注册点是在下的“默认程序”的注册SOFTWARE\RegisteredApplications
。如果您的应用程序适合其中一种客户端类型,则应将RegisteredApplications值指向Software\Clients\%ClientType%\%YourCanonicalName%\Capabilities
,否则可以使用诸如Software\%YourCompany%\%YourApp%\Capabilities
或的任何键Software\Classes\Applications\%Filename%\Capabilities
。
如果希望您的应用程序出现在特定文件扩展名的“打开方式”对话框中,则可以在下列出您的ProgIdHKCR\%.ext%\OpenWithProgids
或在下列出应用程序文件名HKCR\%.ext%\OpenWithList
。
常规“打开方式”信息存储在下HKCR\Applications\%Filename%
。
该Software\Microsoft\Windows\CurrentVersion\App Paths
键主要用作外壳程序的%Path%环境变量扩展名,因此,如果用户在“运行”对话框中仅键入文件名,它就可以找到可执行文件的完整路径。它还可以包含有关您的应用程序如何处理“拖放”和URL协议的一些信息。
下面还有一些应用程序信息,HKCR\AppID
但是除非您有COM服务器,否则此信息不适用。
至于你具体的问题去,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exe
并HKEY_CURRENT_USER\Software\Classes\Applications\MyApp.exe
形成文件我已经涵盖了注册键。SupportedTypes键在此处记录。
HKEY_CURRENT_USER\Software\Classes\MyApp
看起来像ProgId,通常用于注册文件类型和URL协议处理程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句