【发布时间】:2011-02-25 17:11:56
【问题描述】:
我有一个 C# 应用程序,我通过 Office PIA 访问 Outlook 以解析约会。在我的应用程序中,当我创建 Outlook 对象时,会在任务管理器中创建一个新的 Outlook 进程。当我关闭我的应用程序时,我也退出了 Outlook 对象。这将关闭我的任务管理器中的 Outlook 进程。
我的问题是,当用户也在与 Outlook 交互时。具体来说,如果用户打开了 Outlook,当我的程序关闭时,我的程序也会关闭该用户的 Outlook 程序。尝试手动和我的程序打开 Outlook,同时观察任务管理器,似乎只有一个 Outlook 实例可以同时运行,然后用户和我的程序都访问同一个实例,所以当我从我的程序关闭前景,我也关闭了用户的程序。
奇怪的是,情况并非如此。如果用户在我的程序运行时关闭了outlook,他的窗口将会消失,但是outlook进程不会关闭,我的程序仍然可以继续运行。就好像该窗口只是 Outlook 进程的一个客户端,尽管该窗口没有单独的进程。有没有办法让我看看,如果我的程序是唯一使用 Outlook 进程的程序,或者是否有任何“用户窗口客户端”打开,那么我可以避免在 Outlook 仍在使用时关闭它?
【问题讨论】:
-
不知道 C#,但您创建的 Outlook 对象中是否有任何内容显示“使用 PID xxx 启动新的 Outlook”或“附加到现有 Outlook ...”?
-
您是否考虑过让 Outlook 保持打开状态? Outlook 的一般使用行为是人们通常让它整天运行。
-
@Marc B:谢谢,但我没有找到类似的东西。不过,我找到了另一种解决方案,所以没问题。
-
@Chris Lively:谢谢。如果在相对较短的时间内没有找到另一种解决方案,我们考虑过并且会这样做。
标签: c# process outlook client-server