Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > ShellExecute mailto


Автор: ekzo 16.5.2014, 02:19
Есть такой код:

Код

ShellExecute(GetDesktopWindow(), 'Open', 'mailto:[email protected]', nil, nil, SW_SHOWNORMAL);


По клику по такой ссылке на машинах, где, видимо, не установлен дефолтный майл клиент, начинается ад - создаются десятки процессов iexplore.exe и также десятки сообщений "Could not perform this operation because the default mail client is not properly installed." Если не успеть прибить процессы explorer и саму софтину, то поможет тока ресет. Как избежать?

Автор: PointerToNil 16.5.2014, 14:00
если нужно открыть почтовик с заготовкой письма - я бы попробовал что-то типа
Код

uses Mapi;
var message: TMapiMessage;
...
FillChar(message, SizeOf(message), 0); // либо заполнить у message то, что нужно - адрес, текст, аттачменты
Result:=MapiSendMail(0, 0, message, MAPI_DIALOG or MAPI_LOGON_UI, 0);
if Result <> 0 then ...//case Result of ...// обработка кода ошибки

Автор: navodri 23.7.2014, 12:09
Зачем указывать в качестве хендла Рабочий стол?...

Код

//Запуск почтовой программы с указанием темы письма.
ShellExecute(Application.Handle, nil, 
                    'mailto:ваша@почта.com?subject=тема письма', nil, nil, SW_RESTORE);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)