要利用C#修改Windows服务的启动类型(Startup type),可以使用.NET Framework下的ServiceController
和ServiceType
类。步骤如下:
步骤一:添加引用
在项目中添加System.ServiceProcess
引用。
步骤二:获取服务
使用ServiceController
类获取要修改的服务,可以用服务名称或服务ID获取。
ServiceController sc = new ServiceController("服务名称");
或者
ServiceController sc = new ServiceController("服务ID");
步骤三:修改启动类型
使用ServiceType
枚举类型设置服务的启动类型,枚举值有:Automatic
、Manual
、Disabled
。
sc.StartType = ServiceStartMode.Automatic;
或者
sc.StartType = ServiceStartMode.Manual;
或者
sc.StartType = ServiceStartMode.Disabled;
步骤四:保存修改
使用sc.Refresh()
和sc.WaitForStatus()
方法刷新服务状态并等待其停止,之后保存修改。
sc.Refresh();
if (sc.Status == ServiceControllerStatus.Running)
{
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped);
}
sc.StartType = ServiceStartMode.Automatic;
sc.Refresh();
示例1:将Windows Defender服务改为手动启动
using System.ServiceProcess;
ServiceController sc = new ServiceController("WinDefend");
sc.StartType = ServiceStartMode.Manual;
sc.Refresh();
示例2:将Windows更新服务改为禁用
using System.ServiceProcess;
ServiceController sc = new ServiceController("wuauserv");
sc.StartType = ServiceStartMode.Disabled;
sc.Refresh();
通过以上步骤,就能够使用C#修改Windows服务的启动类型。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:怎么利用c#修改services的Startup type - Python技术站