解决方案 »

  1.   

    另外一个可能的原因是你的程序是32位,它读不了64位程序的某些信息(比如MainModule)。
      

  2.   

    如果在进程中找不到路径,就只有WMI了: 
    public static bool UnInstallService(string svcName) 

    string s = "Win32_service"; 
    using (ManagementClass mClass = new ManagementClass(s)) 

    using (ManagementObjectCollection moc = mClass.GetInstances()) 

      foreach (ManagementObject mo in moc) 
      { 
          if (mo["Name"].ToString().Trim().ToUpper() == svcName.ToUpper()) 
           { 
                string strPath=mo["PathName"].ToString();  //路径
          }
      }
    }
    }
      

  3.   

    把你的 try...catch 注视掉,看看 .net 告诉你什么错误信息。写上了 try...catch,就相当于你“自欺欺人”地隐藏所有异常信息,当然什么都不懂啦。