ИТАК часть два из I have no will power experiment является:способ остановить службу Windows, когда CanStop установлен в значение False (C#)
Резюме Вопрос - Есть ли способ, чтобы установить свойство CanStop на окна службы динамически?
Whole Spiel - У меня есть служба, которая в настоящее время проверяет и убивает процессы (IE Games). Я сказал, что если это день, я не позволю. Отлично. Я устанавливаю CanStop на false, чтобы я не мог просто убить эту услугу, если я дам в зависимость. У меня есть программа, которая будет проверять пароль (кто-то другой вводит пароль), который остановит службу, если пароль верен. (Если у меня серьезные проблемы с отзывом) Проблема заключается в использовании класса ServiceController.
Далеко, насколько я могу судить, ServiceController просто является декоратором (yah design patern guess), и поэтому у меня нет возможности получить фактическое обслуживание, которое он представляет. Первая попытка была Property Info, но я был слишком глуп, чтобы понять, что это будет бессмысленно. Вторая была полевой информацией, потому что я думал, что может быть частное поле, которое «представляет» службу. Как вы могли догадаться, оба потерпели неудачу.
Любые идеи?
EDIT 1 Я хотел бы избежать значение CanStop где я могу добраться до него легко, как конфигурационный файл или реестр. Поэтому я пытаюсь, хотя и не успешно, сделать это полностью обработанным в программе.
новые (Failed) Попытки:
ManagementObject обслуживание; ManagementBaseObject stopService;
service = new ManagementObject ("Win32_Service.Name = 'StopProgram'");
stopService = сервис .InvokeMethod ("StopService", null, null);
Не уверен, что это что-то сделало. Я предполагаю, что он не может остановиться из-за ситуации CanStop.
Foiled процессом убить. Я даже этого не сделал. И да, я мог бы удалить игру, но это было скорее учебной вещью. – 2008-09-29 18:04:30