我正在编写一个控制台应用程序,该应用程序将检查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):
在System.Runtime.InteropServices.Marshal.GetActiveObject(Guid&rclsid,保留IntPtrService,保留对象&ppunk)的操作不可用(来自HRESULT的异常:0x800401E3(MK_E_UNAVAILABLE))。 ImportCruiseEmails.Program.Main()上的Marshal.GetActiveObject(String progID)
在线上 :
Marshal.GetActiveObject("Outlook.Application") as Application;
Outlook和控制台应用程序都在具有管理员权限的用户帐户下运行。我整个下午都在梳头。有人可以说明一下吗?干杯!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句