如何制作mailto:
链接将在我的程序中注册?
我如何在程序中处理该事件?
我通过快速Google搜索找到的大多数解决方案都是如何手动执行此操作,但如果他们点击按钮,我需要自动为我的程序用户执行此操作,例如“设置为默认电子邮件客户端”。 / p>
删除了对Delphi的引用,因为答案与您的语言无关。
答案 0 :(得分:18)
@ Dillie-O:你的答案让我朝着正确的方向前进(我应该期待它只是一个注册表更改)并且我得到了这个工作。但我打算将此标记为答案,因为我将在处理此问题时提供一些我发现的其他信息。
这个问题的解决方案与您正在使用的编程语言无关,只要有一些方法可以修改Windows注册表设置。
最后,这是答案:
%1将替换为整个mailto URL。例如,给定链接:
<a href="mailto:user@example.com">Email me</a>
以下将执行:
“您的程序的可执行文件”“mailto:user@example.com”
更新(通过shellscape评论):
从Windows 8开始,此方法不再按预期工作。 Win8强制执行以下项:HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associati ons \ URLAssociations \ MAILTO \ UserChoice,其中所选应用程序的ProgID经过哈希处理且无法伪造。这是皇家PITA
答案 1 :(得分:12)
从我所看到的,有一些注册表项设置默认邮件客户端。其中一个是:
系统密钥:[HKEY_CLASSES_ROOT\mailto\shell\open\command]
值名称:(Default)
数据类型:REG_SZ
(字符串值)
价值数据:Mail program command-line
。
我不熟悉Delphi 7
,但我确信在那里有一些注册表编辑库可用于修改此值。
有些地方列出的内容超过了这个密钥,其他地方只有这个密钥,所以你可能需要稍微测试才能找到合适的密钥。
答案 2 :(得分:4)
以下是以编程方式更改默认邮件客户端的官方Microsoft解决方案。它是Visual Basic,但我希望这个概念很清楚: