C# 启动具有XX.MainModule.FileName的进程列表

C# 启动具有XX.MainModule.FileName的进程列表,c#,process,C#,Process,我有一个带有复选框的程序,它允许用户选择任意多个当前正在运行的进程,并监视它们,然后在它们停止运行时重新启动它们 我已经完成了监控部分,它会检查他们是否在 Process.GetProcesses() 每X秒 然后显示: listBox1.Items.Add(itemChecked + @" " + @"is running" + @" " + DateTime.Now); 但如果它们没有运行,我会尝试获取如下流程文件路径: foreach (object itemChecked in

我有一个带有复选框的程序,它允许用户选择任意多个当前正在运行的进程,并监视它们,然后在它们停止运行时重新启动它们

我已经完成了监控部分,它会检查他们是否在

Process.GetProcesses()
每X秒

然后显示:

  listBox1.Items.Add(itemChecked + @" " + @"is running" + @" " + DateTime.Now);
但如果它们没有运行,我会尝试获取如下流程文件路径:

foreach (object itemChecked in checkedListBox1.CheckedItems)

            {
                var retVal = Process.GetProcesses().Any(p => p.ProcessName == itemChecked.ToString());

                if (retVal.Equals(true))
                {
                    listBox1.Items.Add(itemChecked + @" " + @"is running" + @" " + DateTime.Now);
                }

                else if (retVal.Equals(false))
                {
                    listBox1.Items.Add(itemChecked + @" " + @"is not running, attempting to start" + @" " + DateTime.Now);
                    Process[] processList = Process.GetProcessesByName(itemChecked.ToString());

                    foreach (Process theProcess in processList)
                    {
                     Process.Start(theProcess.MainModule.FileName.ToString());
                    }
                }
            }

对于这段代码,如果他们没有运行,除了告诉我它没有运行之外,什么都不会发生。有什么想法吗

您是否确定该进程从未产生(如果它已关闭)而不是再次关闭?你是如何证实这一点的?流程是否有任何参数?您的进程是否有足够的权限启动进程?我一直在进行更多的阅读,我认为我的程序没有查看文件路径的权限。我可以告诉它以管理员身份运行吗?您的查询将生成一个
IEnumerable
。它永远不等于真或假。很难猜出你想要的是什么,考虑用FueCH枚举它。你确信这个过程永远不会产生(如果它是下降的)而不是再次降临吗?你是如何证实这一点的?流程是否有任何参数?您的进程是否有足够的权限启动进程?我一直在进行更多的阅读,我认为我的程序没有查看文件路径的权限。我可以告诉它以管理员身份运行吗?您的查询将生成一个
IEnumerable
。它永远不等于真或假。很难猜测目的是什么,考虑用前述来列举。