МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ
«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»
ФІЗИКО-ТЕХНІЧНИЙ ІНСТИТУТ
КУРСОВА РОБОТА
з дисципліни «Системне програмування»
на тему
« Розробка служби Win32 »
Виконав: студент IV курсу ФТІ групи ФБ-21
Ігнатьєв Сергій Ігорович
Київ 2009
1. Завдання на курсову роботу
2. Ідея розв’язку задачі та теоретичне обгрунтування її вибору
3. Опис функцій, які використовувалися для програмної реалізації служби
Висновки
Література
Програмна реалізація
Розробити службу Win32, яка перевантажує комп’ютер не відразу, а через деякий час, щоб користувач міг завершити почату роботу.
Служби – це життєво важлива і разом з тим таємнича частина Windows. Якщо раніше ви вже працювали з Windows або адміністрували системи працюючі під цією ОС, то мабуть ви вже зустрічалися зі службами. Що ж це таке? Сама проста відповідь: служба – це програма, яка працює не в контексті користувача. Іншими словами, служби продовжують працювати тоді, коли один користувач відключається від системи і до неї підключається інший користувач. Служби – це єдина категорія програм, які можуть робити в такому режимі.
В Windows служби використовуються для розв’язку багатьох важних задач, наприклад, існує служба, яка дозволяє вам підключатися до комп’ютера, очевидно, що така програма повинна продовжувати працювати навіть в випадку коли до системи не підключено ні одного користувача. Інші служби забезпечують сумісний доступ до диску і принтеру, а також являються допоміжними по відношенню до драйверів дискових пристроїв.
З точки зору програміста, служби – це звичайні програми, які мають засіб зв’язку з диспетчером служб SCM (ServiceControlManager). Диспетчер SCM – це внутрішній механізм Windows, який здійснює керування службами. В WindowsNT 4 користувач взаємодіє з SCM за допомогою аплету ServicesControlPanel. В Windows 2000 ту ж функцію виконує один із модулів консолі ММС. Список функцій які зв’язані зі службами, приведений в таблиці 1.
Як і будь-яка інша консольна програма, служба має функцію main. Одна програма може забезпечити роботу одної служби, а може включати в себе зразу декілька служб. Функція main заповнює масив, який описує всі служби, які підтримує програма. Масив передається службою StartServiceCtrlDispatcher. Для кожної служби, яка входить в склад файла, який використовується, цей масив містить текстовий ідентифікатор і точку входу.
Точка входу служби нагадує собою функцію main. Це функція, яка приймає звичайні аргументи argcіargv.
Таблиця 1. Функції служб.
| Функція | Призначення |
| ChangeServiceConfig | Змінити конфігурацію |
| ChangeServiceConfig2 | Змінити додаткову конфігурацію (Win2000) |
| CloseServiceHandle | Закриває службу або дескриптор SCM |
| ControlService | Посилає службі керуючий запит |
| CreateService | Створює службу |
| DeleteService | Видаляє службу |
| EnumDependentServices | Визначає служби, які потребує та чи інша служба |
| EnumServicesStatus | Послідовно перебирає служби в базі даних SCM |
| GetServiceDisplayName | Повертає ім’я дисплея |
| GetServiceKeyName | Повертає ключ реєстру для даної служби |
| LockServiceDatabase | Блокує базу даних SCM |
| OpenSCManager | Відкриває SCM |
| OpenService | Відкриває існуючу службу |
| QueryServiceConfig | Повертає конфігурацію служби |
| QueryServiceConfig2 | Повертає додаткову конфігурацію служби (Win2000) |
| QueryServiceLockStatus | Повертає інформацію про статус блокування SCM |
| QueryServiceObjectSecurity | Повертає інформацію про захист служби |
| QueryServiceStatus | Повертає стан служби |
| RegisterServiceCtrlHandler | Реєструє функцію керування службою |
| SetServiceBits | Настроює прапори, які пов’язанні зі службою |
| SetServiceObjectSecurity | Настроює захист доступу до служби |
| SetServiceStatus | Встановлює стан служби |
| StartService | Запускає службу |
| StartServiceCtrlDispatcher | Реєструє службу в SCM |
| UnlockServiceDatabase | Деблокує базу даних SCM |
В процесі звернення SCM до функції, яка є точкою входу служби, важливу роль грає структура SERVICE_STATUS. Більшість служб зберігають статичну копію цієї структури і відновлюють її в випадку необхідності. Функція, яка є точкою входу, використовує виклик RegisterServiceCtrlHandler для того, щоб зареєструвати обробник, який призначений для взаємодії SCM зі службою. Крім цього підпрограма ініціалізації служби звертається до виклику SetServiceStatus для того, щоб проінформувати SCM про поточний
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.