Я пытаюсь использовать программу для проверки процесса, если он существует.Почему Process.GetProcessesByName() всегда имеет значение null?
using System;
using System.Diagnostics;
using System.ServiceProcess;
namespace ServProInfo
{
class Program
{
public static int IfProcessExist(string processName)
{
try
{
Process[] targetProcess = Process.GetProcessesByName(processName);
int proLen = targetProcess.Length;
if (proLen == 0)
{
Console.WriteLine("The process does NOT exist or has exited...");
return 0;
}
Console.WriteLine("The process status is: Running");
return 1;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message + "\r\n" + ex.StackTrace + "\r\n" + ex.Source);
return -1;
}
}
static void Main(string[] args)
{
string type = args[0];
string name = args[1];
switch (type)
{
case "p":
IfProcessExist(name);
break;
}
}
}
}
Тем не менее, процесс [] TargetProcess является нулевым во все дни, даже когда я установил ProcessName как имя процесса существуют в.
Как я могу исправить программу?
Можете ли вы привести пример того, как запустить программу? Например: параметры, которые вы передаете программе? –
Я предполагаю, что процесс не найден. Является ли ваш процесс 32-битным процессом, а другой - 64-битным? Это самый распространенный режим отказа. –
Если вы попытаетесь получить процесс с расширением, удалите его, например, попробуйте получить «svchost», а не «svchost.exe» – ilansch