我如何做到这样mailto:
链接将注册我的程序?
那么我将如何在我的程序中处理这个事件呢?
我通过Google的快速searchfind的大多数解决scheme都是如何手动完成的,但是如果用户点击某个button,例如“设置为默认电子邮件客户端”,我需要为我的程序的用户自动执行此操作。
编辑 :删除对Delphi的引用,因为答案是独立于你的语言。
@ Dillie-O:你的回答让我朝着正确的方向发展(我应该预料到它只是一个注册表变更),我得到了这个工作。 但是我要把这个标记为答案,因为我将在工作中发现一些额外的信息。
这个问题的解决方案与使用的编程语言无关,只要有一些方法可以修改Windows注册表设置。
最后,答案如下:
%1将被替换为整个mailto网址。 例如,给定链接:
<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
从我看到的,有一些注册表项设置默认的邮件客户端。 其中之一是:
系统密钥: [HKEY_CLASSES_ROOT\mailto\shell\open\command]
值名称:( (Default)
数据类型: REG_SZ
(字符串值)
数值数据: Mail program command-line
。
我不熟悉Delphi 7
,但是我确定有一些注册表编辑库可以用来修改这个值。
有些地方列出的不仅仅是这个键 ,其他的只是这个键,所以你可能需要测试一下才能找到合适的一个。
这是官方的Microsoft解决方案,以编程方式更改默认的邮件客户端。 这是Visual Basic,但我希望这个概念是清楚的: