Разработка службы Windows "Контроль приложений"
Проектирование, кодирование и отладка службы Windows: "Контроль приложений", осуществляющей контроль набора приложений и управление ими; разработка приложения, управляющего этой службой. Взаимодействие службы и приложения; тестирование и сопровождение.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 22.05.2013 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
108: ShowRegError(s);
109: return -1;
110: }
111:
112: if (strcmp(key, "") == 0 || strcmp(key, "/l /d") == 0 || strcmp(key,
113: "/d /l") == 0) {
114: WriteKeyMode(0);
115: }
116: else {
117: if (strcmp(key, "/l") == 0) {
118: WriteKeyMode("1");
119: }
120: else {
121: WriteKeyMode("2");
122: }
123: }
124: // закрываем дескриптор сервиса
125: CloseServiceHandle(hService);
126: // закрываем дескриптор SCM
127: CloseServiceHandle(hSCManager);
128: return 0;
129: }
130: else {
131: cout << "not corect key" << endl;
132: system("pause");
133: return -2;
134: }
135: }
136:
137: // ----------------------------------------------------------------------------
138: int Uninstal_Service(LPTSTR SomeServiceName,
SERVICE_STATUS ss) {
139: SC_HANDLE hService; // дескриптор сервиса
140: SC_HANDLE hSCManager; // дескриптор Service Control Manager
141:
142: hSCManager = OpenSCManager(NULL, NULL,
SC_MANAGER_ALL_ACCESS);
143: if (!hSCManager)
144: return -1;
145: hService = OpenService(hSCManager, SomeServiceName,
SERVICE_STOP | DELETE);
146: if (!hService) {
147: CloseServiceHandle(hSCManager);
148: return -1;
149: }
150: if (ss.dwCurrentState != SERVICE_STOPPED)
151: ControlService(hService, SERVICE_CONTROL_STOP, &ss);
152: // удаляем сервис из системы
153: DeleteService(hService);
154: CloseServiceHandle(hService);
155: CloseServiceHandle(hSCManager);
156: return 0;
157: }
158:
159: // ----------------------------------------------------------------------------
160: int Run_Service(LPTSTR SomeServiceName) {
161: SC_HANDLE hService; // дескриптор сервиса
162: SC_HANDLE hSCManager; // дескриптор Service Control Manager
163:
164: hSCManager = OpenSCManager(NULL, NULL,
SC_MANAGER_ALL_ACCESS);
165: if (!hSCManager)
166: return -1;
167: hService = OpenService(hSCManager, SomeServiceName,
SERVICE_START);
168: if (!hService) {
169: CloseServiceHandle(hSCManager);
170: return -1;
171: }
172: if (!StartService(hService, 0, NULL)) {
173: CloseServiceHandle(hService);
174: CloseServiceHandle(hSCManager);
175: return -1;
176: }
177: CloseServiceHandle(hService);
178: CloseServiceHandle(hSCManager);
179: return 0;
180: }
181:
182: // ----------------------------------------------------------------------------
183: int Stop_Service(LPTSTR SomeServiceName, SERVICE_STATUS ss)
{
184: SC_HANDLE hService; // дескриптор сервиса
185: SC_HANDLE hSCManager; // дескриптор Service Control Manager
186:
187: hSCManager = OpenSCManager(NULL, NULL,
SC_MANAGER_ALL_ACCESS);
188: if (!hSCManager)
189: return -1;
190: hService = OpenService(hSCManager, SomeServiceName,
SERVICE_STOP);
191: if (!hService) {
192: CloseServiceHandle(hSCManager);
193: return -1;
194: }
195: if (!ControlService(hService, SERVICE_CONTROL_STOP, &ss)) {
196: CloseServiceHandle(hService);
197: CloseServiceHandle(hSCManager);
198: return -1;
199: }
200: CloseServiceHandle(hService);
201: CloseServiceHandle(hSCManager);
202: return 0;
203: }
204: // ----------------------------------------------------------------------------
205:
206: #pragma argsused
207:
208: int _tmain(int argc, _TCHAR* argv[]) {
209: LPTSTR SomeServiceName = "ControlProcess";
210: // имя сервиса, которое будет отображаться в службах
211: SERVICE_STATUS ss;
212: int n;
213:
214: while (1) {
215: system("cls");
216: cout << "Choose action having chosen a corresponding key:" << endl
<<
217: "1 - Install Service;" << endl << "2 - Uninstall Service;" <<
218: endl << "3 - Start/stop Service; " << endl << "4 - help;" << endl <<
219: "5 - Exit." << endl;
220: cin >> n;
221: switch (n) {
222: case 1: {
223: system("cls");
224: if (Instal_Service(SomeServiceName) == -2) break;
225: ShowLastError();
226: system("pause");
227: } break;
228: case 2: {
229: system("cls");
230: Uninstal_Service(SomeServiceName, ss);
231: ShowLastError();
232: system("pause");
233: break;
234: }
235: case 3: {
236: system("cls");
237: cout << "Choose " << endl << "1-Start Service " << endl <<
238: "2-Stop Service " << endl;
239: cin >> n;
240: switch (n) {
241: case 1: {
242: Run_Service(SomeServiceName);
243: ShowLastError();
244: break;
245: }
246: case 2: {
247: Stop_Service(SomeServiceName, ss);
248: ShowLastError();
249: } break;
250: default: {
251: system("cls");
252: cout <<"There is no such point repeat input" << endl;
253: system("pause");
254: } break;
255: }
256: system("pause");
257: } break;
258:
259: case 4: {
260: system("cls");
261: cout << "Help using service " << endl << "1 - Info program " <<
262: endl << "2 - Help Key " << endl;
263: cin >> n;
264: switch (n) {
265: case 1: {
266: system("cls");
267:
268: cout << "This service is intended for control over Windows
applications. An operation mode are set at installation by a choice of keys."
269: << endl;
270: std::cout <<
271: " Copyrights
are protected: " <<
272: endl << "
author Skivu A. I.Surgu FAT gr.1281 (c)"
273: << endl;
274: } break;
275: case 2: {
276: cout << "/l - this key resolves write Process log" <<
277: endl << "/d - this key resolves ron defragmentatoin if CPU
not usage"
278: << endl << "Example:" << endl <<
279: "Input key: /d - In Service not working Process log and
work Defragmentator" <<
280: endl;
281: } break;
282: default: {
283: system("cls");
284: cout << "There is no such point repeat input" << endl;
285: } break;
286: }
287: system("pause");
288: break;
289: }
290: case 5:
291: exit(1);
292: default: {
293: system("cls");
294: cout << "There is no such point repeat input" << endl;
295: system("pause");
296: break;
297: }
298: }
299: }
300: return 0;
301: }
302: // ---------------------------------------------------------------------------
Размещено на Allbest.ru
Подобные документы
Разработка на языке C++ службы, осуществляющей контроль набора выполняющихся приложений. Проектирование, кодирование, отладка, тестирование и сопровождение службы Windows. Взаимодействие службы и приложения. Интерактивность разрабатываемой службы.
курсовая работа [964,9 K], добавлен 01.06.2013Проектирование службы Windows и приложения для управления этой службой, которое позволит контролировать данные приложения - запускать и завершать определенные процессы по желанию пользователя через определенные промежутки времени. Инструкция по установке.
курсовая работа [2,8 M], добавлен 05.01.2013Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.
курсовая работа [867,9 K], добавлен 16.07.2013Теоретические основы написания Windows-приложений с использованием библиотеки MFC. Основы программирования под Windows. Проектирование приложений в среде Microsoft Visual C++. Описание логической структуры приложения, его функциональное назначение.
курсовая работа [1,3 M], добавлен 12.12.2011Проектирование и отладка Windows-приложений для работы с внешними источниками данных. Функциональная блок-схема взаимодействия программных модулей. Описание связей между таблицами. Тестирование программного средства. Требования к техническому обеспечению.
курсовая работа [2,7 M], добавлен 17.05.2011Основы организации приложения в Windows. Посылка и передача сообщений для окон. Создание и отображение главного окна приложения. Деактивация приложения, его фазы. Сообщения клавиатуры и функции для работы с ней. Определение состояния отдельных клавиш.
лекция [65,7 K], добавлен 24.06.2009Реализация программы, созданной средствами языка C#. Предназначение Windows-приложения для решения комплекса задач. Определение состава форм с графиком функции. Вычисление коэффициентов полинома. Создание текстового поля для введения корней многочлена.
курсовая работа [234,8 K], добавлен 13.11.2016Структура базы данных web-приложения предприятия ООО "Седово"; автоматизация процесса передачи документов. Разработка технического задания, проектирование БД, функциональное назначение web-приложений, тестирование, отладка и размещение в сети Internet.
дипломная работа [5,3 M], добавлен 24.06.2011Основы работы с многооконным графическим пользовательским интерфейсом операционной системы Windows95/NT. Основы работы с прикладными программами Windows и DOS. Разработка простого приложения для Windows при помощи средства разработки приложений DELPHI.
контрольная работа [281,0 K], добавлен 15.01.2009Общая характеристика операционных систем и приложений Windows. Разделение ресурсов, работа с окнами, назначение диска, видов памяти, системы сохранения и передачи данных. История возникновения приложений, их виды и особенности, порядок написания.
курс лекций [321,0 K], добавлен 24.06.2009