用于mailto的ShellExecute:不与Google Chrome一起使用

时间:2014-08-07 18:16:27

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

我想点击我的应用中链接到电子邮件地址的超链接控件后打开默认电子邮件程序。为此我做了以下事情:

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

上述方法通常可以通过启动Outlook或Live Mail新电子邮件窗口来实现,该窗口填写在" To:"领域。

但是当我将谷歌浏览器作为我的默认网络浏览器时,我得到的是一个空白的Chrome浏览器窗口,只显示我的主页,而不是其他内容。

那我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

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

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