如何使它成为mailto:
链接将被注册到我的程序中?通过编程注册Windows程序与mailto协议
我会如何处理我的程序中的事件?
我从快速Google搜索中找到的大多数解决方案都是如何手动执行此操作的,但如果他们单击按钮(例如“设为默认电子邮件客户端”),我需要为我的程序的用户自动执行此操作。
编辑:删除了对Delphi的引用,因为答案与您的语言无关。
如何使它成为mailto:
链接将被注册到我的程序中?通过编程注册Windows程序与mailto协议
我会如何处理我的程序中的事件?
我从快速Google搜索中找到的大多数解决方案都是如何手动执行此操作的,但如果他们单击按钮(例如“设为默认电子邮件客户端”),我需要为我的程序的用户自动执行此操作。
编辑:删除了对Delphi的引用,因为答案与您的语言无关。
@ Dillie-O:你的回答让我在正确的方向(我应该期望它只是一个注册表更改)我得到了这个工作。但是我将把这个标记为答案,因为我将在工作时发现一些额外的信息。
只要有一些方法可以修改Windows注册表设置,此问题的解决方案与您使用的编程语言无关。
最后,这里的答案:
%1将与整个的mailto URL来代替。例如,给定的链接:
<a href="mailto:[email protected]">Email me</a>
以下将被执行:
“你的程序的可执行” “电子邮件地址:[email protected]”
更新(通过由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中,但我希望这个概念是清楚的:
从您的链接:“这是从默认的Web浏览器或电子邮件客户端,用于从系统中的任何位置启动任意URL的独立。” 这也是我想知道的另一件事,但不是真正的这个问题的答案。 – 2008-11-01 16:26:35
您是否检查过现在您是否可以将此标记为*答案?我不知道最低声誉要求。 – tzot 2010-06-30 21:55:49