Это должно сработать:
var serviceName = "<your service name here>";
string objPath = string.Format("Win32_Service.Name='{0}'", serviceName);
using (var service = new ManagementObject(new ManagementPath(objPath)))
{
var result = (int)service.InvokeMethod("ChangeStartMode", new object[] {"Automatic"});
}
Вам необходимо добавить ссылку на сборку System.Management
, а также импортировать пространство имен System.Management
.
Примечание.что ваша программа должна быть повышена (работает от имени администратора), чтобы это работало, и нет никакого способа обойти это.Для других возможных значений для ChangeStartMode
вы можете обратиться к MSDN .
Переменная result
будет числовым значением, указывающим результат.Например, 0 для успеха.Обратитесь к ранее связанной статье MSDN для всех возможных возвращаемых значений.