Windows 10 已于2025年10月14日停止支持。如果您正在使用 Windows 10,参见 这篇文章

Windows 10 reached EOS (end of support) on October 14, 2025. If you are on Windows 10, see this article.

搜索 | 用户支持

防范以用户支持为名的诈骗。我们绝对不会要求您拨打电话或发送短信,及提供任何个人信息。请使用“举报滥用”选项报告涉及违规的行为。

详细了解
Solved 已存档

Default external protocol handler not listed as alternative

mjakobss 已回复
mjakobss

In Windows I have registered my own handler for an external protocol in the registry. When I click the link in Firefox or Thunderbird I'm shown the "Launch Application" dialog in which I should choose an application for handling the protocol, but the program I've registered as default handler is not listed as an alternative i.e. the only entry in the list is "Choose an Application"

Observations:

  • I'm never shown a message stating that the protocol is unknown, i.e. the registry entry is found
  • The links works as expected in IE.
  • If I register the application to another of my programs I get an entry in the dialog for some programs, but not for others. I haven't found any difference in the programs that would cause them to be listed or not. Icons are never shown in the dialog, although defined in the protocols registry settings.
  • If I put an illegal program path in the registry I get an entry in the dialog!?
  • The same problem occurs regardless of the protocol identifier I choose
  • Behaviour is the same regardless if the protocol is registered under HKEY_CLASSES_ROOT or HKEY_CURRENT_USER\Software\Classes
  • If I change "network.protocol-handler.warn-external-default" in about:config to false my program is successfully launched when clicking the link
  • Currently running on Windows 7 Starter Edition, but the same happens on other versions of Windows 7 and Windows Vista 64-bit as well
In Windows I have registered my own handler for an external protocol in the registry. When I click the link in Firefox or Thunderbird I'm shown the "Launch Application" dialog in which I should choose an application for handling the protocol, but the program I've registered as default handler is not listed as an alternative i.e. the only entry in the list is "Choose an Application" Observations: * I'm never shown a message stating that the protocol is unknown, i.e. the registry entry is found * The links works as expected in IE. * If I register the application to another of my programs I get an entry in the dialog for some programs, but not for others. I haven't found any difference in the programs that would cause them to be listed or not. Icons are never shown in the dialog, although defined in the protocols registry settings. * If I put an illegal program path in the registry I get an entry in the dialog!? * The same problem occurs regardless of the protocol identifier I choose * Behaviour is the same regardless if the protocol is registered under HKEY_CLASSES_ROOT or HKEY_CURRENT_USER\Software\Classes * If I change "network.protocol-handler.warn-external-default" in about:config to false my program is successfully launched when clicking the link * Currently running on Windows 7 Starter Edition, but the same happens on other versions of Windows 7 and Windows Vista 64-bit as well

由mjakobss于修改

所有回复 (1)

选择的解决方案

I found the cause for the problem. It was caused by the applications version info in my case. My applications are created with Delphi 2010.

If I create a small test project and don't check the project option "Include version information in project", the application is shown in the dialog (actually the applications path and arguments are shown as defined in the registry).

If I check the project option "Include version information in project" the application is only shown in the dialog list if I put text in the FileDescription field.

In my opinion Firefox should always show the application regardless of the version information supplied. If FileDescription is missing Firefox should fallback to using the ProductName or the applications path.