2014-02-21 106 views
1

我有一个情况,我有一个应用程序使用OUTLOOK发送邮件,问题是,当我试图从管理员打开的应用程序发送邮件时,它会抛出异常如何关闭其他用户打开的Outlook应用程序

Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).

有没有什么办法可以通过编程来解决它?

回答

2

您可以拨打Process.GetProcessesByName()传递OUTLOOK或任何实际进程名称。

这会为您提供一个过程数组。然后,您可以遍历其中每一个,并检查启动该过程的用户。如果用户不是您想要的用户,您可以致电Process.Kill()并终止该过程。

获取用户可能会很棘手,您可以使用WMI(您也可以使用WMI列出进程)。

检查此答案here获取用户名。

但是我会重新思考你如何发送邮件。我希望作为用户的最后一件事是看着我的Outlook消失,因为您的应用程序正在尝试发送电子邮件。

+0

正是我要说的。 –

+0

我的最终目标是通过outlook发送邮件,但windows不允许访问outlook,因为它是由其他用户打开的。有没有解决方案。 – Nkn

相关问题