提问人:Roy 提问时间:10/31/2023 最后编辑:Eugene AstafievRoy 更新时间:11/1/2023 访问量:46
检查新 Outlook 是否正在运行,如果正在发送电子邮件
Checking If NEW Outlook is running and sending emails if it is
问:
我有一个桌面应用程序,可以检查 Outlook 是否正在运行以及是否正在发送电子邮件。
我的客户刚刚将 Outlook 升级到“新”Outlook,应用程序的这一部分现已停止工作
我用来检查Outlook是否正在运行的代码是
If isAppThere("Outlook.Application") = False Then
MsgBox("Outlook is closed. Please start up Outlook")
Exit Sub
Function isAppThere(appName) As Boolean
Dim objApp As Object
On Error GoTo OUTERR
isAppThere = True
objApp = GetObject(, appName)
OUTERR:
If Err.Number <> 0 Then
isAppThere = False
End If
End Function
如果我删除此部分并让程序尝试通过Outlook发送电子邮件,则会出现错误“使用CLSID检索组件的COM类.....由于以下错误而失败80080005服务器执行失败”。
使用旧版本的 Outlook 运行相同程序的另一个用户没有问题。显然,“新”展望导致了这个问题。那么如何检查此版本是否正在运行以及如何通过此新版本发送电子邮件?
提前致谢
请看上文。我尝试通过新 Outlook 发送电子邮件
答:
1赞
Dmitry Streblechenko
11/1/2023
#1
您不能使用新的 Outlook 以编程方式发送或执行任何操作 - 它没有公开可用的 API。
您唯一的选择是告诉客户不要降级到新的 Outlook - 它是 Windows Mail 和 Windows 日历的替代品,而不是桌面 Outlook,后者仍完全受支持。
1赞
Eugene Astafiev
11/1/2023
#2
l您可以只检查正在运行的进程列表,而不是获取正在运行的 Outlook 应用程序实例。
If Process.GetProcessesByName("Outlook").Length < 1 Then
' not running
End If
评论