Windows 8 如何向“控制面板-默认程序”中显示的程序详细信息添加网址

Windows 8 如何向“控制面板-默认程序”中显示的程序详细信息添加网址,windows-8,windows-7,digital-signature,digital-certificate,authenticode,Windows 8,Windows 7,Digital Signature,Digital Certificate,Authenticode,我正在写一个程序,可以处理mailto:协议。为了允许用户选择我的程序作为默认电子邮件处理程序,我注册了我的程序。然而,我注意到一些程序在公司名称下显示指向公司网站的可点击链接,例如文件浏览器 如何指定指向我的网站的链接,以便在选择我的应用程序时,默认程序界面显示该链接? 我使用Microsoft Visual Studio 2013 ultimate。以下是我的.reg格式的计划注册详细信息: Windows Registry Editor Version 5.00 [HKEY_LOCAL_

我正在写一个程序,可以处理mailto:协议。为了允许用户选择我的程序作为默认电子邮件处理程序,我注册了我的程序。然而,我注意到一些程序在公司名称下显示指向公司网站的可点击链接,例如文件浏览器

如何指定指向我的网站的链接,以便在选择我的应用程序时,默认程序界面显示该链接?

我使用Microsoft Visual Studio 2013 ultimate。以下是我的.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。例如,微软公司的三个应用程序:画图-无链接,照片库-Visual Studio 2013-(无www)

  • Skype for Desktop展示了公司Skype Technologies S.A.和指向的链接

  • 链接地址似乎没有存储在注册表中。它存储在shell\open\command下列出的可执行文件中

  • 它似乎没有作为资源存储在可执行文件中

  • 在可执行文件中找不到链接地址


  • 默认程序中程序和公司名称下显示的URL作为已验证属性1.3.6.1.4.1.311.2.1.12存储在数字签名中

    设置此值的一种方法是在Visual Studio命令提示符下使用signtool。URL是
    /du
    参数后的值,例如:

    signtool sign /s My /n "RegmagiK Software" /du "http://www.RegmagiK.com" awesome.exe 
    
    证书必须由受信任的证书颁发机构签名

    对于测试,可以使用makecert工具创建自签名证书,并使用证书管理器使其可信

    makecert -r -ss My -sr CurrentUser -n "CN=RegmagiK Software" SelfSigned.cer
    certmgr.exe /add SelfSigned.cer /s /r currentUser root
    
    签署可执行文件后,重新打开默认程序并单击应用程序。它现在应该显示指向您的站点的链接。