在 Windows 10 上将 mailto 协议注册到自定义程序

在 Windows 10 上将 mailto 协议注册到自定义程序

我想注册我的程序来处理该mailto 协议。

我已经看到了这些答案

我尝试在此路径添加新密钥或修改现有密钥: HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\URLAssociations\MAILTO\Userchoice

此外,我将我的程序添加到HKCR根目录,但这并没有使我的程序出现在选择列表中。

另外,为了测试目的,我尝试将此路径中 mailto 键的 classname 值更改 HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\GoogleChrome\Capabilities\ URLAssociations为我的程序的 classname。这确实有效,但我宁愿添加自己的注册表项,而不是入侵 Google Chrome。

我如何将我的程序添加为该mailto协议的合法处理程序?

答案1

以下是邮件客户端注册示例 - 使用默认程序/现代默认应用程序进行注册。您可以对其进行相应修改,省去不必要的部分。

Windows Registry Editor Version 5.00

;RegisteredApplications
;----------------------
[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
"MyMail"="Software\\Clients\\Mail\\MyMail\\Capabilities"


;Clients Key (The path mentioned for MyMail in RegisterdApplications key)
;------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\MyMail]
@="MyMail"

[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\MyMail\Capabilities]
"ApplicationDescription"="Superfast, Light-weight Mail Client for Windows"

[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\MyMail\Capabilities\FileAssociations]
".eml"="MyMail.eml"
".nws"="MyMail.nws"

[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\MyMail\Capabilities\StartMenu]
"Mail"="MyMail"

[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\MyMail\Capabilities\UrlAssociations]
"mailto"="MyMail.mailto"


;Then create handlers for MyMail.eml, MyMail.nws, MyMail.mailto as referenced above

;EML File Type Handler
;---------------------
[HKEY_CLASSES_ROOT\MyMail.eml]
@="MyMail EML Handler"

[HKEY_CLASSES_ROOT\MyMail.eml\shell\open\command]
@="\"C:\\Program Files\\Windows Mail\\WinMail.exe\" -eml \"%1\""


;NWS File Type Handler
;---------------------
[HKEY_CLASSES_ROOT\MyMail.nws]
@="MyMail NEWS Handler"

[HKEY_CLASSES_ROOT\MyMail.nws\shell\open\command]
@="\"C:\\Program Files\\Windows Mail\\WinMail.exe\" -news \"%1\""


;MAILTO Protocol Handler
;---------------------
[HKEY_CLASSES_ROOT\MyMail.mailto]
@="MyMail MAILTO Handler"

[HKEY_CLASSES_ROOT\MyMail.mailto\shell\open\command]
@="\"C:\\Program Files\\Windows Mail\\WinMail.exe\" -mailto \"%1\""

我已经上传了同样的内容Pastebin 链接

有关官方文档,请参阅默认程序注册在 MSDN 上。尽管文档指出它不适用于 Windows 10,但它确实适用于 Windows 10(并且运行良好)。注册部分在 Windows 10 中没有一点变化。

另请参阅: Windows 10 程序默认设置 - Microsoft Community

答案2

此注册表补丁无法使用 mailto 链接。因此我修改了此行:

@="\"C:\\Program Files\\Windows Mail\\WinMail.exe\" -mailto \"%1\""

进入这个

@="\"C:\\Program Files\\Windows Mail\\WinMail.exe\" /mailurl:\"%1\""

然后,为了将所有协议与 Windows Mail 关联,我打开了控制面板 > 预定义程序 > 设置预定义程序并进行了必要的更改。

相关内容