我正在编写一个可以处理 mailto: 协议的程序。为了允许用户选择我的程序作为默认电子邮件处理程序,我注册了我的程序。但是,我注意到有些程序会在公司名称下显示指向公司网站的可点击链接,例如文件资源管理器。
如何指定指向我的网站的链接,以便默认程序 UI 在选择我的应用程序时显示它?
我使用 Microsoft Visual Studio 2013 终极版。这是我的 .reg 格式的程序注册详细信息:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
"MyMail"="SOFTWARE\\MyFirm\\MyApp\\Capabilities"
[HKEY_LOCAL_MACHINE\SOFTWARE\MyFirm\MyApp\Capabilities]
"ApplicationDescription"="This is an awesome description."
"ApplicationName"="Awesome App"
[HKEY_LOCAL_MACHINE\SOFTWARE\MyFirm\MyApp\Capabilities\URLAssociations]
"mailto"="mailto.2"
[HKEY_CLASSES_ROOT\mailto.2]
@="URL:MailTo Protocol"
"EditFlags"=dword:00000002
"FriendlyTypeName"="My Mail Client"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\mailto.2\shell\open\command]
@="\"C:\\bg\\awesome.exe\" \"%l\""
这是文件资源管理器的可单击链接的示例。
这是我没有链接的应用程序
这是我到目前为止发现的:
并非所有应用程序都显示此链接。
Microsoft 和非 Microsoft 应用程序都可以显示此链接,例如 CyberLink PowerDVD 显示指向 www.cyberlink.com 的链接。
并非所有 Microsoft 应用程序都显示该链接,并且显示该链接的应用程序可能具有不同的 URL。例如,Microsoft Corporation 的三个应用程序:Paint - 无链接、Photo Gallery - http://www.microsoft.com、Visual Studio 2013 - http://microsoft.com(无 www)。
Skype for Desktop 显示公司 Skype Technologies SA 和http://www.microsoft.com的链接。
链接地址似乎没有存储在注册表中。它存储在 shell\open\command 下列出的可执行文件中。
它似乎没有作为资源存储在可执行文件中。
sysinternals的字符串工具在可执行文件中找不到链接地址。