ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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;

}











Смотрите также файлы