Добавил:
abhai2013@gmail.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab6

.docx
Скачиваний:
10
Добавлен:
30.06.2018
Размер:
119.01 Кб
Скачать

Лабораторная работа №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;

}

Соседние файлы в предмете Операционные системы и системное программирование