Кратко о небольшой библиотеке позволяющей устанавливать, удалять, запускать и останавливать сервисы из-под Windows.
WinServiceRunner - это C++ библиотека, собранная из-под Microsoft Visual Studio 2013, основная цель которой, как уже было сказано, является предоставление функционала по работе с Windows сервисами, как уже установленными в системе, так и представленными *.exe файлами. Выход библиотеки - DLL файл.
Что библиотека может:
Что библиотека не может:
Типы проектов
Настройка “нативного” проекта
Явно объявлена в:
“Project Settings” -> “C/C++” -> “Preprocessor” -> “Preprocessor definitions”.
Если определена, то равна __declspec(dllexport), иначе __declspec(dllimport).
Имеет смысл только в случае если LIBRARY_API не определена, так как служит своеобразным декоратором для функций являющихся внутренними.
Является алиасом к типу char либо wchar_t в зависимости от того, определена ли директива UNICODE.
Повышение привилегий запуска
Некоторые сервисы могут быть запущены или приостановлены только под учетной записью Администратора системы либо с привилегиями администратора.
Это может быть сделано программно - запустить отдельный процесс с повышенными привилегиями (UAC запрос) как на С++, так и на C#. Однако, есть другой способ это сделать - явно указать что библиотека должна быть запущены с повышенными привилегиями. Установите опцию UAC Execution Level в:
requireAdministrator (/level=‘requireAdministrator’):
Сама настройка может быть найдена тут:
“Configuration Properties” -> “Linker” -> “Manifest File”
« Previous Blog Post | Back to top | Next Blog Post »