【问题标题】:How to add a web address to program details displayed in Control Panel - Default Programs如何将网址添加到控制面板中显示的程序详细信息 - 默认程序
【发布时间】:2014-12-22 04:40:54
【问题描述】:

我正在编写一个可以处理 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\""

这是文件资源管理器的可点击链接示例。

这是我没有链接的应用程序

这是我目前发现的:

  1. 并非所有应用程序都显示此链接。

  2. Microsoft 和非 Microsoft 应用程序都可以显示此链接,例如,Cyber​​Link PowerDVD 显示指向 www.cyberlink.com 的链接。

  3. 并非所有 Microsoft 应用程序都显示该链接,并且显示该链接的应用程序可能具有不同的 URL。例如,Microsoft Corporation 的三个应用程序:Paint - 无链接、Photo Gallery - http://www.microsoft.com、Visual Studio 2013 - http://microsoft.com(无 www)。

  4. 桌面版 Skype 显示公司 Skype Technologies S.A. 以及指向 http://www.microsoft.com 的链接。

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

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

  7. strings tool from sysinternals 在可执行文件中找不到链接地址。

【问题讨论】:

    标签: windows-8 windows-7 digital-signature digital-certificate authenticode


    【解决方案1】:

    默认程序中的程序和公司名称下显示的 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
    

    签署可执行文件后,重新打开默认程序并单击您的应用程序。它现在应该显示指向您网站的链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      相关资源
      最近更新 更多