mailto:在没有安装邮件客户端的URL中

时间:2013-06-13 08:16:15

标签: c++ winapi email mailto

我遇到了一个问题。我在UI中显示了一个电子邮件链接。当用户点击该链接时,它会被打开:

LPCTSTR url=L"mailto:myemail@gmail.com?subject=my_subject";
ShellExecute(hParentWnd, _T("open"), url, NULL, NULL, SW_SHOWNORMAL);

只要最终用户安装了电子邮件客户端,此功能就可以使用。但是,如果电子邮件客户端不是安装程序,那么该命令只会在默认Web浏览器中打开主页。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您可以使用AssocQueryString("mailto")(或查看mailto:)确定哪个可执行文件/命令处理hkcr\mailto\shell\open\command协议。

如果幸运的话,对于没有关联设置的机器,这将是空的。