我有一个C#应用程序,其中我通过Office PIA访问Outlook以解析约会。在我的应用程序中,当我创建我的Outlook对象时,任务管理器中会创建一个新的Outlook过程。当我关闭我的应用程序时,我也退出了Outlook对象。这会关闭我的任务管理器中的Outlook过程。如何检测用户是否正在访问我已启动的Outlook进程?
我的问题是,当用户也与Outlook交互。特别是,如果用户打开Outlook,当我的程序关闭时,我的程序也会关闭该用户的Outlook程序。在观察任务管理器的同时,尝试手动和使用我的程序来打开Outlook,似乎只有一个Outlook实例可以同时运行,并且用户和我的程序都可以访问同一个实例,所以当我从我的程序关闭前景,我也关闭了用户的程序。
奇怪的是,情况并非如此。如果用户关闭Outlook,当我的程序运行时,他的窗口将消失,但Outlook过程不会关闭,我的程序仍然可以继续。就好像该窗口只是Outlook过程的客户端,尽管没有单独的窗口过程。有没有办法让我看到,如果我的程序是唯一使用Outlook进程的程序,或者打开了任何“用户窗口客户端”,那么我可以避免在关闭前台时关闭它?
不知道C#,但你会创建Outlook对象在那里,说有什么“开始了一个新的面貌与PID XXX “或”附加到现有的前景...“? – 2011-02-25 17:16:50
你有没有考虑过让Outlook打开?总的来说,Outlook的使用行为是人们通常无论如何整天都在运行。 – NotMe 2011-03-15 15:40:14
@马克乙:谢谢,但我没有找到那样的事情。但是,我发现了另一个解决方案,所以没问题。 – Boris 2011-03-15 16:03:22