Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SC_HANDLE


TerminalHead ©   (2005-08-03 20:34:00) 

Помогите пожалуйста исправить: пытаюсь использовать вот эту функцию, но получаю очень много ошибок:

function CreateNTService(ExecutablePath, ServiceName: string): boolean;
var
 hNewService, hSCMgr: SC_HANDLE;
 // Rights: DWORD;
 FuncRetVal: Boolean;
begin
 FuncRetVal := False;
 hSCMgr := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
 if (hSCMgr <> 0) then
 begin
   //Custom service access rights may be built here
   //we use GENERIC_EXECUTE which is combination of
   //STANDARD_RIGHTS_EXECUTE, SERVICE_START, SERVICE_STOP,
   //SERVICE_PAUSE_CONTINUE, and SERVICE_USER_DEFINED_CONTROL
   //You can create own rights and use them as shown in the
   //commented line below.

   //Rights := STANDARD_RIGHTS_REQUIRED or SERVICE_START or SERVICE_STOP
   // or SERVICE_QUERY_STATUS or SERVICE_PAUSE_CONTINUE or
   // SERVICE_INTERROGATE;

   hNewService := CreateService(hSCMgr, PChar(ServiceName), PChar(ServiceName),
     STANDARD_RIGHTS_REQUIRED, SERVICE_WIN32_OWN_PROCESS,
     SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,
     PChar(ExecutablePath), nil, nil, nil, nil, nil);
   CloseServiceHandle(hSCMgr);
   if (hNewService <> 0) then
     FuncRetVal := true
   else
     FuncRetVal := false;
 end;
 CreateNTService := FuncRetVal;
end;

А вот и ошибки:

[Error] Unit1.pas(45): Undeclared identifier: 'SC_HANDLE'
[Error] Unit1.pas(50): Undeclared identifier: 'OpenSCManager'
[Error] Unit1.pas(50): Undeclared identifier: 'SC_MANAGER_CREATE_SERVICE'
[Warning] Unit1.pas(51): Comparing signed and unsigned types - widened both operands
[Error] Unit1.pas(64): Undeclared identifier: 'CreateService'
[Error] Unit1.pas(65): Undeclared identifier: 'SERVICE_WIN32_OWN_PROCESS'
[Error] Unit1.pas(66): Undeclared identifier: 'SERVICE_DEMAND_START'
[Error] Unit1.pas(66): Undeclared identifier: 'SERVICE_ERROR_NORMAL'
[Error] Unit1.pas(68): Undeclared identifier: 'CloseServiceHandle'
[Warning] Unit1.pas(69): Comparing signed and unsigned types - widened both operands
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'


TerminalHead   (2005-08-03 22:02:00) [1]

Пока что программа почему-то не запускается
Вроде все ок, но все-равно запускатся при запуске виндов не хочет
Пишу: CreateNTService('c:\Program Files\newservice.exe','New Service');


TerminalHead   (2005-08-03 21:40:00) [2]

Вот пытаюсь разобратся в этом: http://delphiworld.narod.ru/base/services_work.html
Но пока что не очень получается, я конечно совершенный ламер и в дельфи почти ничего не смыслю, в общем то как и в других языка програмирования, но мне очень нужно добавить мое приложение в автозагрузку как сервис.
И я был бы очень рад если кто-нибудь смог бы мне помочь это сделать.
На сколько я понял эта функция занимается именно этим, но я так и не понял как сделать чтобы мое приложение попало в автозагрузку сервисом.
Помогите пожалуйста


TerminalHead   (2005-08-03 21:27:00) [3]

Спасибо !!!


begin...end   (2005-08-03 20:57:00) [4]

Добавьте в список uses модуль WinSvc. И все ошибки сразу исчезнут.


Наверх

Титульная страница Поиск, карта сайта Написать письмо