【问题标题】:ShellExecute for mailto: doesn't work with Google Chrome用于 mailto 的 ShellExecute:不适用于 Google Chrome
【发布时间】:2014-08-08 02:18:04
【问题描述】:

我希望在单击我的应用程序中链接到电子邮件地址的超链接控件后打开默认电子邮件程序。为此,我执行以下操作:

//LPCTSTR addr = L"mailto:myaddress@gmail.com";
ShellExecute(hParentWnd, _T("open"), addr, NULL, NULL, SW_SHOWNORMAL);

上述方法通常通过在“收件人:”字段中填写该地址来调出 Outlook 或 Live Mail 新电子邮件窗口来工作。

但是,当我将 Google Chrome 作为我的默认网络浏览器时,我得到的只是一个空白的 Chrome 浏览器窗口,它只显示我的主页,没有其他任何内容。

那么我在这里做错了什么?

【问题讨论】:

  • 为什么这被否决了?对我来说,这似乎是一个非常好的问题! (我确实有同样的问题)-> 我会投票!
  • @TotteKarlsson:谢谢。你解决了吗?

标签: c++ google-chrome winapi windows-shell windows-explorer


【解决方案1】:

_T("open") 更改为NULL。并非所有应用程序都使用 "open" 作为默认动词。 NULL 强制使用实际的默认值。

顺便说一句,在 Win32 API 中使用 TCHAR 文字时,您应该使用 TEXT() 而不是 _T()_T() 旨在与 C 运行时库一起使用。

【讨论】:

  • 谢谢。刚刚试了一下,结果一模一样——只得到一个空白的主页。
  • 那么问题出在 Chrome 方面,而不是您的应用。也许它没有正确注册mailto URL,所以它没有检测到电子邮件地址。不管怎样,问题不在于你。
猜你喜欢
  • 2015-09-26
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 2016-02-13
相关资源
最近更新 更多