Windows 10 在其注册表中存储默认电子邮件应用程序的位置

Man*_*era 8 windows-registry windows-10-mail-app

我已在[Windows 10> 设置 > 系统 > 默认应用程序](屏幕截图)中将 Google Chrome 设置为我的默认电子邮件应用程序。我的键盘有快捷键Fn+F2可以打开默认的电子邮件应用程序,例如,如果我使用内置的“邮件”应用程序或专为此类事情设计的其他应用程序,则效果很好,但我想在 Chrome 浏览器中打开 Gmail,问题是当我按下键盘上的快捷键组合时,它只会打开 Chrome 及其主页。

我需要找出 Windows 注册表电子邮件默认应用程序的存储位置,以便我可以调整链接以打开我想要的页面,但我找不到它,有很多不同的位置。这是我想使用的链接,它应该可以工作:"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -- "https://mail.google.com"

请让我知道Windows 10 在其注册表中存储其默认电子邮件应用程序的位置?

选择默认应用

pap*_*apo 11

  • Windows 10 在其注册表中存储默认电子邮件应用程序的位置?

    这是原始问题的标题。
    Windows 10 中的默认电子邮件应用程序是一个处理mailto:协议的应用程序。它实际上不应该打开收件箱,而是写一个新的电子邮件表单 - 通过打开一个新页面/窗口开始写一封电子邮件。

  • 如何更改硬件密钥关联?

    这是问题的其余部分,或问题二。
    键盘上的一个按钮被定义为Write New Email,这是通过使用mailto:协议调用默认电子邮件应用程序来完成的。

但是调用mailto:协议并没有打开写新电子邮件表单,也没有打开收件箱,也没有打开电子邮件应用程序。这是第三个问题。

  • 为什么 Chrome 没有打开使用mailto协议编写新的电子邮件表单?

    因为 Chrome 会忽略它,除非它在 ​​Chrome 的选项中明确允许。

三个答案都详细:

  • 硬件密钥关联

    按下特殊硬件键
    HW 按钮时应采取的操作可以是专用按钮,也可以是Asker 中的Fn+F2组合。
    注册表设置位于:
    HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Appkey
    15表示电子邮件按钮的设置
    值名称可以是:

    • “ShellExecute” - 它的值是要执行的文件名,
      例如“calc.exe”或带有正确路径和可能参数的 chrome.exe
    • "Association" - 指向一个 shell 关联对象
      ,它是 HKEY_CLASSES_ROOT 下的一个 Key 的名称,
      例如txtfile将打开记事本,或者在我们的例子中mailto将打开一个与 mailto 协议关联的应用程序。

    使用 mailto 关联打开写新电子邮件。这是提问者计算机上的默认行为:

    REGEDIT4
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Appkey\15]
    "Association"="mailto"
    
    Run Code Online (Sandbox Code Playgroud)

    要打开电子邮件应用程序或带有电子邮件收件箱的浏览器,您可以使用带有正确命令的 shell 执行。这就是 Asker 想要的,他的解决方案适用于这种情况。

    ShellExecute "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -- "https://mail.google.com"

    或以 .reg 文件的形式

    REGEDIT4
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\15]
    "ShellExecute"="\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\" -- \"https://mail.google.com\""
    
    Run Code Online (Sandbox Code Playgroud)

    在专用窗口中打开 Gmail 应用程序 - Chrome 的应用程序。

    REGEDIT4
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\15]
    "ShellExecute"="\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\" --app-id=pjkljhegncpnkpknbcohdijeoejaedia"
    
    Run Code Online (Sandbox Code Playgroud)

    为了使最后一个工作,您还需要在 Chrome 中安装 Gmail 应用程序,并且需要在 Chrome 中的 Gmail 应用程序的右键菜单中启用“打开为窗口”。


  • mailto协议的默认电子邮件应用程序


    例如,当您在某个程序的“关于”菜单或 Windows 中的其他各个位置单击向开发人员发送电子邮件时,或者单击文档或网页中的电子邮件链接时,哪个程序正在处理“编写新电子邮件”调用
    只能使用从 Windows 设置中选择应用程序对话框或打开为命令来完成选择

    设置 - 默认应用

    如果设置是写电子邮件而不仅仅是电子邮件,
    我认为在 Windows 界面中没有单独的设置用于打开收件箱的应用程序。

    mailto协议的注册表项在HKLM\SOFTWARE\Classes\mailto其他类下并且与其他类一样,它们可以被 CURRENT_USER 的条目覆盖,HKCU\SOFTWARE\Classes\mailto
    但是
    在最近的 Windows 版本中发生了变化,现在,注册表中有更多的地方将进一步覆盖类的外壳关联. 此外,在mailto 的情况下,它们是强制性的,因此使mailto的 Classes 值无用。 紧随其后的
    是 Key:
    [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\mailto]
    ,它又被覆盖:
    [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Roaming\OpenWith\UrlAssociations\mailto]
    仅当它未被覆盖时才使用:
    [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\mailto]
    GOOD JOB Microsoft :)
    这些键下的值具有相同的格式,一个带有ProgId 值名称指向的 Key UserChoiceClasses到 shell 关联键。 但是您几乎可以忘记编辑这些值,因为还有哈希值。这是对此类注册表编辑的保护。

    用户必须至少单击一次以在标准的 Windows 打开方式对话框弹出窗口中选择一个应用程序,如果他还选中了始终选项,则会生成哈希值,并记住该选择并将其写入上面列表中的最后两个键。另一种选择是使用上图所示的设置。
    它是针对恶意应用程序、病毒和不良编程应用程序的保护措施。

    要解决默认的mailto关联问题,您可以从所有这些位置(LOCAL_MACHINE 除外)下删除mailto密钥。
    Windows 将在下次使用mailto协议时重新创建它们。


  • Chrome 浏览器处理 mailto:链接

    如果选择 Chrome 作为默认电子邮件应用程序,则上述注册表设置将指向ChromeHTML关联。然后调用mailto协议将从该注册表项执行操作。
    HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command default "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -- "%1"
    %1 被替换成这样:mailto:bogus@email.com?subject=Hello 这个字符串将被传递到 Chrome 浏览器的地址栏。
    Chrome 预计会通过 Chrome 内部定义的适当操作对mailto:协议做出反应。但问题是:

    mailto没有默认操作 Chrome 中的链接已定义。

    • 开启此功能的默认方式应该是“点击地址栏中的眼睛”。在 gmail.com 网页上并选择Use Gmail
      但有时,没有“眼睛”
    • 手动打开mailto: handler。
      转到 Chrome 设置 - 隐私 - 内容设置 - 处理程序 - 管理处理程序,
      或输入地址:chrome://settings/handlers
      然后删除忽略的协议处理程序并将活动协议处理程序切换到 mail.google.com

      协议处理程序

    • 我发现了另一种解决方法。通过打开这个链接,会打开一个写新的电子邮件表单https://mail.google.com/mail?extsrc=mailto&url=email@domain.com
      但是当我在ChromeHTML类中使用它作为命令时,它破坏了在浏览器中打开 http 链接的功能,所以我创建了一个新类ChromeMAILTO并更改了功能定义的关联铬浏览器。这是此变通方法的完整 .reg 文件:

      REGEDIT4
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ChromeMAILTO\Application]
      "ApplicationName"="Google Chrome mailto"
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ChromeMAILTO\shell\open\command]
      @="\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\" -- https://mail.google.com/mail?extsrc=mailto&url=%1"
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\Google Chrome\Capabilities\URLAssociations]
      "mailto"="ChromeMAILTO"
      
      Run Code Online (Sandbox Code Playgroud)

      或者,如果您希望将其作为 Chrome 应用程序打开,请在专用窗口中:

      REGEDIT4
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ChromeMAILTO\Application]
      "ApplicationName"="Google Chrome mailto"
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ChromeMAILTO\shell\open\command]
      @="\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\" --app=\"https://mail.google.com/mail?extsrc=mailto&url=%1\""
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\Google Chrome\Capabilities\URLAssociations]
      "mailto"="ChromeMAILTO"
      
      Run Code Online (Sandbox Code Playgroud)

      现在选择Google Chrome mailto作为默认电子邮件应用程序 在此处输入图片说明

    我没有测试 Chrome 更新是否不会破坏这个解决方法


Man*_*era 1

好吧,如果有人感兴趣的话,我已经在这里找到了答案。[在此处输入链接描述][1] 效果很好

以下是该链接的引用

这是侧面一键式按键的调整(这就是它们的名字)

互联网密钥: HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Appkey\7 "Association"="http" ;更改字符串值“http”

计算器密钥:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\18 "ShellExecute"="calc.exe";更改字符串值“calc.exe”

电子邮件密钥: HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Appkey\15 "Association"="mailto" ;更改字符串值“mailto”

Cyber​​link PowerDVD/Mediasmart 密钥: HKLM\SYSTEM\ControlSet001\Control\MobilePc\HotStartButtons\2 "ApplicationPath" = "C:\Program File(x86)\Cyber​​link\PowerDVD9\PowerDVD9.exe"; 更改字符串值“C:\Program File(x86)\Cyber​​link\PowerDVD9\PowerDVD9.exe”

[1]: http://h30434.www3.hp.com/t5/Notebook-Hardware-and-Upgrade-Questions/How-do-I-customize-the-Action-Keys/td-p/379207%5CPowerDVD9% 5CPowerDVD9.exe%22

但为了稍微解释一下,这就是我所做的:

运行 [regedit] 并转到 [HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Appkey\15],使用名称 [ShellExecute] 创建新的 [字符串值] 并将其值设置为 ["C:\Program Files" (x86)\Google\Chrome\Application\chrome.exe" -- " https://mail.google.com "]。[Appkey\7] 为互联网快捷键,[AppKey\18] 为计算器快捷键。除了执行程序的 [ShellExecute] 之外,您还可以使用 [http] 或 [mailto] 的示例值进行 [关联],可能还有更多操作可以完成。