Добрый день! Сегодня я покажу как можно создать службу для windows!
И так, при включений пк на первые секунды(2-3) немного лагает комп, это из-за того, что ты тупой майнер, или из-за того что выполняются все службы, программы на Авто-Загрузке Планировщик Заданий и т.д.
Начнём же творить!
код пипец простой идём к разбору
тут всё просто, создаём переменные
Открываем SCManager со всеми правами(приложение нужны права администратора) их можно изменить в Проект->Свойства->Компоновщик->Файл манифеста->Уровень выполнения UAC
тут мы создаём службу, которая автоматически запускается от имени администратора, после загрузки пк, обратите внимание что 5-ый параметр написано SERVICE_WIN32-OWN-PROCESS, существует
SERVICE_WIN32-OWN-PROCESS - Служба, которая работает в своем собственном процессе.
SERVICE_FILE_SYSTEM_DRIVER - Служба драйверов файловой системы.
SERVICE_KERNEL_DRIVER - Служба драйверов.
SERVICE_WIN32_SHARE_PROCESS - Служба, которая совместно использует процесс с одной или несколькими другими службами.
а с SERVICE_AUTO_START тоже самое:
SERVICE_AUTO_START - Служба запускается автоматически диспетчером управления службами во время запуска системы
SERVICE_BOOT_START - Драйвер устройства запускается загрузчиком системы.
SERVICE_DEMAND_START - Служба запускается диспетчером управления службами, когда процесс вызывает функцию .
SERVICE_DISABLED - Служба, которая не может быть запущена. Попытки запустить службу приводят к коду ошибки ERROR_SERVICE_DISABLED.
SERVICE_SYSTEM_START - Драйвер устройства, запускаемый функцией IoInitSystem. Это значение допустимо только для служб драйверов.
и даже SERVICE_ERROR_NORMAL
SERVICE_ERROR_CRITICAL - Программа запуска регистрирует ошибку в журнале событий, если это возможно. Если запускается последняя известная конфигурация, операция запуска завершается неудачно. В противном случае система перезапускается с последней известной хорошей конфигурацией.
SERVICE_ERROR_IGNORE - Программа запуска игнорирует ошибку и продолжает операцию запуска.
SERVICE_ERROR_NORMAL - Программа запуска регистрирует ошибку в журнале событий, но продолжает операцию запуска.
SERVICE_ERROR_SEVERE - Программа запуска регистрирует ошибку в журнале событий. Если запускается последняя известная конфигурация, операция запуска продолжается. В противном случае система перезапускается с последней известной хорошей конфигурацией.
Закрываем менеджер:
Если хотите, напишу как можно узнать путь до программы!
Удачи вам! Спасибо за просмотр!
И так, при включений пк на первые секунды(2-3) немного лагает комп, это из-за того, что ты тупой майнер, или из-за того что выполняются все службы, программы на Авто-Загрузке Планировщик Заданий и т.д.
Начнём же творить!
C++:
int main()
{
SC_HANDLE schSCManager, schService;
LPCTSTR lpszBinaryPathName=L"C:\\Windows\\System32\\cmd.exe";//путь до проги
LPCTSTR lpszDisplayName=L"У меня больше!";//описание службы(не рекомндую использовать русские символы)я использовал для примера!
LPCTSTR lpszServiceName=L"писюнь";//название службы(не рекомндую использовать русские символы)я использовал для примера!
schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);//открываем Service MAnager
schService = CreateService(schSCManager, lpszServiceName, lpszDisplayName, SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, lpszBinaryPathName, NULL, NULL, NULL, NULL, NULL);//создание службы
CloseServiceHandle(schService);//тут закрываем
}
код пипец простой идём к разбору
тут всё просто, создаём переменные
C++:
int main()
{
SC_HANDLE schSCManager, schService;
LPCTSTR lpszBinaryPathName=L"C:\\Windows\\System32\\cmd.exe";//путь до проги
LPCTSTR lpszDisplayName=L"У меня больше!";//описание службы(не рекомндую использовать русские символы)я использовал для примера!
LPCTSTR lpszServiceName=L"писюнь";//название службы(не рекомндую использовать русские символы)я использовал для примера!
Открываем SCManager со всеми правами(приложение нужны права администратора) их можно изменить в Проект->Свойства->Компоновщик->Файл манифеста->Уровень выполнения UAC
C++:
schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);//открываем Service MAnager cо всеми правами
тут мы создаём службу, которая автоматически запускается от имени администратора, после загрузки пк, обратите внимание что 5-ый параметр написано SERVICE_WIN32-OWN-PROCESS, существует
SERVICE_WIN32-OWN-PROCESS - Служба, которая работает в своем собственном процессе.
SERVICE_FILE_SYSTEM_DRIVER - Служба драйверов файловой системы.
SERVICE_KERNEL_DRIVER - Служба драйверов.
SERVICE_WIN32_SHARE_PROCESS - Служба, которая совместно использует процесс с одной или несколькими другими службами.
а с SERVICE_AUTO_START тоже самое:
SERVICE_AUTO_START - Служба запускается автоматически диспетчером управления службами во время запуска системы
SERVICE_BOOT_START - Драйвер устройства запускается загрузчиком системы.
SERVICE_DEMAND_START - Служба запускается диспетчером управления службами, когда процесс вызывает функцию .
SERVICE_DISABLED - Служба, которая не может быть запущена. Попытки запустить службу приводят к коду ошибки ERROR_SERVICE_DISABLED.
SERVICE_SYSTEM_START - Драйвер устройства, запускаемый функцией IoInitSystem. Это значение допустимо только для служб драйверов.
и даже SERVICE_ERROR_NORMAL
SERVICE_ERROR_CRITICAL - Программа запуска регистрирует ошибку в журнале событий, если это возможно. Если запускается последняя известная конфигурация, операция запуска завершается неудачно. В противном случае система перезапускается с последней известной хорошей конфигурацией.
SERVICE_ERROR_IGNORE - Программа запуска игнорирует ошибку и продолжает операцию запуска.
SERVICE_ERROR_NORMAL - Программа запуска регистрирует ошибку в журнале событий, но продолжает операцию запуска.
SERVICE_ERROR_SEVERE - Программа запуска регистрирует ошибку в журнале событий. Если запускается последняя известная конфигурация, операция запуска продолжается. В противном случае система перезапускается с последней известной хорошей конфигурацией.
C++:
schService = CreateService(schSCManager, lpszServiceName, lpszDisplayName, SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, lpszBinaryPathName, NULL, NULL, NULL, NULL, NULL);/
Закрываем менеджер:
C++:
CloseServiceHandle(schService);//тут закрываем
Если хотите, напишу как можно узнать путь до программы!
Удачи вам! Спасибо за просмотр!