Настройка параметров службы в Windows 7 программно с помощью VB.NET - PullRequest
0 голосов
/ 30 декабря 2010

Если вы редактируете службу в Windows 7 и переходите на вкладку «Вход в систему», существует опция «Разрешить службе взаимодействовать с рабочим столом». Я пытаюсь убедиться, что он установлен для определенного сервиса, использующего VB.NET. Кто-нибудь знает способ сделать это? Примечание. Делать это во время установки программы нельзя. Это должно быть сделано во время выполнения.

Ответы [ 2 ]

1 голос
/ 31 декабря 2010

Вызовите ChangeServiceConfig с помощью SERVICE_INTERACTIVE_PROCESS . Преимущество использования Windows API заключается в том, что он должен позаботиться о части уведомления и обеспечения непрерывности и сделать недействительным кеш в других программах, использующих служебный контроллер, и, если что-то пойдет не так, вы получите код ошибки. Вообще говоря, вам не следует обращаться к реестру, если вы можете использовать API для получения / установки настроек.

1 голос
/ 31 декабря 2010

Конфигурация службы хранится в реестре под

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\

С ключом для каждой службы.

Похоже, что флаг с третьего по последний в Тип значение соответствует значению «взаимодействовать с рабочим столом».

Например, для службы, настроенной на НЕ взаимодействовать с рабочим столом, установлено значение:

Type    REG_DWORD   0x0000010 (16)

, тогда как эта же служба, когдазначение, разрешенное для взаимодействия с рабочим столом, имеет значение:

Type    REG_DWORD   0x0000110 (272)

Я не могу сказать, что это гарантировано, поскольку я не проводил никакого тестирования, но это может быть хорошим началом,Вам нужно будет перезапустить службу, прежде чем изменения в этом значении вступят в силу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...