我想注册我的程序来处理该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 中没有一点变化。
答案2
此注册表补丁无法使用 mailto 链接。因此我修改了此行:
@="\"C:\\Program Files\\Windows Mail\\WinMail.exe\" -mailto \"%1\""
进入这个
@="\"C:\\Program Files\\Windows Mail\\WinMail.exe\" /mailurl:\"%1\""
然后,为了将所有协议与 Windows Mail 关联,我打开了控制面板 > 预定义程序 > 设置预定义程序并进行了必要的更改。