在Windows注册表中注册应用程序

时间:2017-01-19 00:58:30

标签: windows registry

Windows有一种模糊且明确的方式来声明在Windows注册表中注册应用程序的标准。

遵循application registration的官方文档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 在一个而不是另一个中可用)。在这些不同的密钥下注册应用程序之间的区别是什么?在哪种情况下你选择的是另一个?

1 个答案:

答案 0 :(得分:3)

是的,注册表中有多个位置可以放置应用程序信息以及使用哪个键取决于您注册的内容/原因。

我认为主要的注册点是注册"默认程序"在SOFTWARE\RegisteredApplications下。如果您的应用符合其中一个client types,则应将您的RegisteredApplications值指向Software\Clients\%ClientType%\%YourCanonicalName%\Capabilities,否则您可以使用Software\%YourCompany%\%YourApp%\CapabilitiesSoftware\Classes\Applications\%Filename%\Capabilities等任何键。

如果您希望自己的应用程序显示在特定文件扩展名的"Open With" dialog中,则可以列出HKCR\%.ext%\OpenWithProgids下的ProgIdHKCR\%.ext%\OpenWithList下的应用程序文件名。< / p>

一般&#34;打开&#34;信息存储在HKCR\Applications\%Filename%下。

Software\Microsoft\Windows\CurrentVersion\App Paths键主要用作shell的%Path%环境变量扩展,因此如果用户只在“运行”对话框中键入文件名,它就可以找到可执行文件的完整路径。它还可以包含有关您的应用程序如何处理&#34;拖放的信息。降&#34;和URL协议。

HKCR\AppID下还有一些应用程序信息,但除非您有COM服务器,否则这不适用。

就具体问题而言,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exeHKEY_CURRENT_USER\Software\Classes\Applications\MyApp.exe是我已经涵盖的文档注册密钥。 SupportedTypes键记录在here

HKEY_CURRENT_USER\Software\Classes\MyApp看起来像ProgId,通常用于register file typesURL protocol handlers