我正在尝试通过 MS Office Outlook 通过在 BDS 2006 中开发的应用程序发送邮件。
它在我的 Outlook 运行时工作得很好,但如果 Outlook 关闭,它会在 try
block 中失败。
它显示错误EOlesystem error:操作不可用
并且不会进入Except
block
我的代码
procedure TMyform.BTN_mailClick(Sender: TObject);
const
olMailItem =0;
var
Outlook: OleVariant;
vMailItem: variant;
begin
try
Outlook := GetActiveOleObject('Outlook.Application');
except
Outlook := CreateOleObject('Outlook.Application');
end;
vMailItem := Outlook.CreateItem(olMailItem);
vMailItem.Recipients.Add(mailaddress);
vMailItem.Subject := 'mymail';
vMailItem.Body := 'Dear '
vMailItem.Attachments.Add(path);
vMailItem.Send;
VarClear(Outlook);
end;
我该如何克服这个问题?
谢谢
最佳答案
它必须转到 except block 。你在那里设置断点来检查吗?
但是您仍然可以防止异常发生:
var
Outlook: OleVariant;
ClassID: TCLSID;
Unknown: IUnknown;
begin
if Succeeded(GetActiveObject(ClassID, nil, Unknown)) then
OleCheck(Unknown.QueryInterface(IDispatch, Outlook)) else
Outlook := CreateOleObject('Outlook.Application');
{ ... }
关于delphi MS Office Outlook 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8093381/