Читаем Системное программирование в среде Windows полностью

 hSc = CreateService(hScm, argv[1], argv[2], SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, Executable, NULL, NULL, NULL, NULL, NULL);

 return 0;

}

/* Удаление службы – argv [1]: имя удаляемой службы. */

int Delete(int argc, LPTSTR argv[], LPTSTR Command) {

 SC_HANDLE hSc;

 hSc = OpenService(hScm, argv[1], DELETE);

 DeleteService(hSc); 

 CloseServiceHandle(hSc);

 return 0;

}

/* Запуск именованной службы - argv [1] : имя запускаемой службы. */

int Start(int argc, LPTSTR argv[], LPTSTR Command) {

 SC_HANDLE hSc;

 TCHAR WorkingDir[MAX_PATH + 1];

 LPTSTR pWorkingDir = WorkingDir;

 LPTSTR argvStart[] = {argv[1], WorkingDir};

 GetCurrentDirectory(MAX_PATH + 1, WorkingDir);

 hSc = OpenService(hScm, argv[1], SERVICE_ALL_ACCESS);

 /* Запустить службу с одним аргументом — именем рабочего каталога. */

 /* Примечание: по умолчанию имя службы совпадает с именем, */

 /* связанным с дескриптором hSc посредством функции OpenService. */

 /* Вместе с тем, функция ServiceMain это не проверяет. */

 StartService(hSc, 2, argvStart);

 CloseServiceHandle(hSc);

 return 0;

}

/* Управление именованной службой.

   argv[1]: имя управляемой службы.

   argv[2]: управляющая команда: stop (остановка), pause (пауза), resume (возобновление), interrogate (опрос). */

static LPCTSTR Commands[] = {"stop," "pause," "resume," "interrogate," "user"};

static DWORD Controls[] = {

 SERVICE_CONTROL_STOP, SERVICE_CONTROL_PAUSE,

 SERVICE_CONTROL_CONTINUE, SERVICE_CONTROL_INTERROGATE, 128

};

int Control(int argc, LPTSTR argv[], LPTSTR Command) {

 SC_HANDLE hSc;

 SERVICE_STATUS ServiceStatus;

 DWORD dwControl, i;

 BOOL Found = FALSE;

 for (i= 0; i < sizeof(Controls)/sizeof(DWORD) && !Found; i++) Found = (_tcscmp(Commands [i], argv[2]) == 0);

 if (!Found) {

  _tprintf(_T("\nНесуществующая команда управления %s"), argv[1]);

  return 1;

 }

 dwControl = Controls[i – 1];

 hSc = OpenService(hScm, argv[1], SERVICE_INTERROGATE | SERVICE_PAUSE_CONTINUE | SERVICE_STOP | SERVICE_USER_DEFINED_CONTROL | SERVICE_QUERY_STATUS);

 ControlService(hSc, dwControl, &ServiceStatus); 

 if (dwControl == SERVICE_CONTROL_INTERROGATE) {

  QueryServiceStatus (hSc, &ServiceStatus);

  printf(_T("Состояние, полученное при помощи QueryServiceStatus\n"));

  printf(_T("Состояние службы\n"));

  … Вывести всю остальную информацию о состоянии …

 }

 if (hSc != NULL) CloseServiceHandle(hSc);

 return 0;

} 

<p>Совместное использование объектов ядра приложениями и службами</p>
Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных