
14.01.2007, 21:02
|
|
Постоянный
Регистрация: 19.09.2005
Сообщений: 408
Провел на форуме: 3730496
Репутация:
519
|
|
Программная реализация:
Код:
#include <iostream>
#include <windows.h>
#include <winsvc.h>
main()
{
SC_HANDLE MdaService, SCManager;
SCManager = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE);
if(!SCManager)
{
std::cout << "Error" << std::endl;
return 1;
}
//////////////////////////////////////////////////
// запуск (установка) обычной программы как сервис
//////////////////////////////////////////////////
MdaService = CreateService(
SCManager,
"MdaServiceInternalName",
"Mda Service External Name",
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
"C:\\MdaService.exe",
0,0,0,0,0);
if(!MdaService)
{
CloseServiceHandle(SCManager);
std::cout << "Error" << std::endl;
return 1;
}
//////////////////////////////////////////////////
// ну а это - удаление сервиса (если понадобится)
//////////////////////////////////////////////////
/*
MdaService = OpenService(
SCManager,
"MdaServiceInternalName",
DELETE);
if(!MdaService)
{
CloseServiceHandle(SCManager);
std::cout << "Error" << std::endl;
return 1;
}
if (!DeleteService(MdaService))
{
CloseServiceHandle(SCManager);
std::cout << "Error" << std::endl;
return 1;
}
*/
CloseServiceHandle(MdaService);
CloseServiceHandle(SCManager);
return 0;
}
|
|
|