ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.06.2019
Просмотров: 102
Скачиваний: 1
Лабораторная работа №6
Создание системной службы Windows
Студента ИТ 14-1 Красовского Абхая
Цель работы: изучить особенности создания и удаления системных служб Windows.
Ход работы:
CreateService:
#include "stdafx.h"
#include "InstallService.h"
#include <windows.h>
char infomes[512];
char servicedir[MAX_PATH];
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
{
lstrcpy(infomes, "Service succesful creat at path:\n");
lstrcpy(servicedir, "%SystemRoot%\\System32\\service.exe");
SC_HANDLE scm = OpenSCManager(NULL, /* имя компьютера */
NULL, // имя базы данных
SC_MANAGER_CREATE_SERVICE); /* предполагаемый доступ */
if (scm != NULL) {
SC_HANDLE svc = CreateService(scm, /* hSCManager */
"Terra-Incognita", /* lpServiceName */
"Terra-Incognita", /* lpDisplayName */
0, /* доступ */
SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS, /* тип службы */
SERVICE_AUTO_START, /* автозапуск */
SERVICE_ERROR_IGNORE, /* контроль ошибок */
servicedir, /* BinaryPathName */
NULL, /* LoadOrderGroup */
NULL, /* TagId */
NULL, /* зависимости */
NULL, /* ServiceStartName. NULL - значит использутеся имя аккаунта */
NULL); /* Password */
if (svc != NULL) {
CloseServiceHandle(svc);
strcat(infomes, servicedir); /* объединение строк */
MessageBox(NULL, infomes, "Install", NULL);
}
CloseServiceHandle(scm);
}
else {
MessageBox(NULL, "Error: Could not create Service.", "Install", NULL);
}
return 0;
}
UnistallService:
#include"stdafx.h"
#include"UnistallService.h"
#include<windows.h>
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, intnCmdShow)
{
SC_HANDLE scm = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (scm != NULL) {
SC_HANDLE svc = OpenService(scm, "Terra-Incognita", STANDARD_RIGHTS_REQUIRED);
DeleteService(svc);
if (svc != NULL) {
CloseServiceHandle(svc);
MessageBox(NULL, "Succesful", "UnInstall", NULL);
}
CloseServiceHandle(scm);
}
else {
MessageBox(NULL, "Error: Could not uninstall Service.", "UnInstall", NULL);
}
return 0;
}