Pourquoi le Processus.GetProcessesByName() est toujours nulle?

Je tente d'utiliser le programme pour vérifier le processus, si elle existe.

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;
            }  
        }
    }
}

Cependant, le Processus[] targetProcess est toujours nulle, même quand je processName comme un existe pas de processus de nom.

Comment pourrais-je corriger le programme?

Pouvez-vous fournir un exemple de la façon dont vous exécutez le programme? J'aime: Les paramètres que vous êtes de passage dans le programme?
Je suppose que le processus n'a pas été trouvé. Est votre processus d'un processus 32 bits, et les autres processus 64 bits? C'est la panne la plus fréquente mode.
Si vous essayez d'obtenir le processus avec l'extension, l'enlever, la e.g essayer d'obtenir "svchost" et pas "svchost.exe"

OriginalL'auteur SUT | 2013-04-10