Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用GetProcessByName是检查进程是否正在运行的最佳方法吗?_C#_Outlook_Process - Fatal编程技术网

C# 使用GetProcessByName是检查进程是否正在运行的最佳方法吗?

C# 使用GetProcessByName是检查进程是否正在运行的最佳方法吗?,c#,outlook,process,C#,Outlook,Process,尽管主题标题解释了大部分问题,但我还是想勾勒出一个场景,让您了解这个问题是在什么背景下提出的 我有一个类似于Outlook联系人列表的应用程序。它从Outlook获取所有联系人,结果显示在数据网格视图中。现在,我不希望每次应用程序打开并关闭时都启动Outlook,而是希望它在已打开时不打开,在应用程序关闭且用户已运行Outlook时保持打开状态。以下是我的用法: Process[] pName = Process.GetProcessesByName("OUTLOOK"); if (pName.

尽管主题标题解释了大部分问题,但我还是想勾勒出一个场景,让您了解这个问题是在什么背景下提出的

我有一个类似于Outlook联系人列表的应用程序。它从Outlook获取所有联系人,结果显示在数据网格视图中。现在,我不希望每次应用程序打开并关闭时都启动Outlook,而是希望它在已打开时不打开,在应用程序关闭且用户已运行Outlook时保持打开状态。以下是我的用法:

Process[] pName = Process.GetProcessesByName("OUTLOOK");
if (pName.Length == 0)
{
    MessageBox.Show("Outlook is not running."); // Open Outlook anew.
}
else
{
    MessageBox.Show("Outlook is running."); // Do not re-open Outlook.
}

这是最好、最安全的方法吗?提前谢谢你。

是的。我想不出更好的办法了