C#怎样修改服务的状态?例如把手动的改为自动的!

解决方案 »

  1.   

    最简单的办法,调用系统命令sc 
    格式是:sc   config   ServiceName   start=   auto|demand(注意,等号后面有一个空格) 
    或者是,直接写注册表 
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName节下 
    有一个Start值,2和3对应手动自动
      

  2.   

      public enum ServiceAutoStart
            {
                Auto = 2,
                Run = 3,
                Stop = 4
            }
            /// <summary>
            /// 设置服务启动类型
            /// </summary>
            /// <param name="p_ServiceName">服务名称</param>
            /// <param name="p_State"></param>
            public static void SetServiceAutoStart(string p_ServiceName, ServiceAutoStart p_State)
            {
                Microsoft.Win32.RegistryKey _Reg = Microsoft.Win32.Registry.LocalMachine;            _Reg = _Reg.OpenSubKey(@"SYSTEM\ControlSet001\Services\" + p_ServiceName, true);
                _Reg.SetValue("Start", (int)p_State);
            }
      

  3.   

    .net 提供现成的
    ServiceController 
      

  4.   

    用 ManagementClass能实现吗?