从c#应用程序访问Outlook的问题

 abc 发布于 2022-12-11 11:42

我正在编写一个控制台应用程序,它检查Outlook邮箱的内容,以便将特定电子邮件的内容读入数据库.

无论Outlook是否开放,此应用程序在Visual Studio中都能正常运行.

如果我构建应用程序并从exe运行它只能在Outlook打开时工作,这不是一个真正的问题.

但是,我需要从计划任务运行它,因为它必须每隔几分钟运行一次.这根本不起作用.

我正在使用以下代码:

System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName("OUTLOOK");

int collCount = processes.Length;

if (collCount != 0)
{
    OutlookApp = Marshal.GetActiveObject("Outlook.Application") as Application;  
}
else
{
    OutlookApp = new Application();
} 

我得到的错误信息是:

System.Runtime.InteropServices.COMException(0x800401E3)::操作不可用(0x800401E3(MK_E_UNAVAILABLE)从HRESULT异常)
在System.Runtime.InteropServices在System.Runtime.InteropServices.Marshal.GetActiveObject(GUID&rclsid,IntPtr的保留,对象&ppunk). ImportCruiseEmails.Program.Main()中的Marshal.GetActiveObject(String progID)

在线上 :

Marshal.GetActiveObject("Outlook.Application") as Application;

Outlook和控制台应用程序都在我的用户帐户下运行,该帐户具有管理员权限.整个下午,我一直把头发拉出来.任何人都可以对此有所了解吗?干杯!

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有