Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Создание службы под WinNT   Найти похожие ветки 

 
Alekc   (2004-04-11 18:12) [0]

Помогите советом или исходником плз. Конкретно интересует как сделать программу, которая может запускаться как служба WindowsNT и как отдельное приложение. Сделать что-то одно легко, а вот как сделать два в одном ?.. Конкретно непонятно как при запуске программы определить в каком именно режиме она запускается ?


 
Polevi ©   (2004-04-11 18:19) [1]

с помощью параметров командной строки
при регистрации сервиса задай путь к exe как myexe.exe -service
при старте смотри на ParamStr


 
sniknik ©   (2004-04-11 20:38) [2]

ScktSrvr запускается и так и так, в дельфях есть исходники.


 
Polevi ©   (2004-04-12 09:25) [3]

function InstallService:boolean;
var
 scm,serv:THandle;
begin
 scm:=OpenSCManager(nil,nil,SC_MANAGER_CREATE_SERVICE);
 serv:=CreateService(scm,PChar(FServiceName),PChar(FServiceName),SERVICE_ALL_ACCESS,
                     SERVICE_WIN32_OWN_PROCESS,SERVICE_DEMAND_START,SERVICE_ERROR_IGNORE,
                     PChar(ParamStr(0)+" -service"),nil,nil,nil,nil,nil);
 Result:=serv<>0;
 if Result then CloseServiceHandle(serv);
end;

procedure RemoveService;
var
 scm,serv:THandle;
begin
 scm:=OpenSCManager(nil,nil,SC_MANAGER_CONNECT);
 serv:=OpenService(scm,PChar(FServiceName),SERVICE_ALL_ACCESS);
 try
   DeleteService(serv);
 finally
   CloseServiceHandle(serv);
 end;
end;

begin
 { TODO -oUser -cConsole Main : Insert code here }
 if FindCmdLineSwitch("INSTALL",["-","\","/"], True) then
   InstallService
 else
 if FindCmdLineSwitch("UNINSTALL",["-","\","/"], True) then
   RemoveService
 else
 if FindCmdLineSwitch("SERVICE",["-","\","/"], True) then
 begin
   StartServiceCtrlDispatcher(...); //работаем как сервис
 end
 else
 begin //работаем как приложение
   ...
   ...
 end
end.



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.061 c
1-1083829842
malkolinge
2004-05-06 11:50
2004.05.23
Приложение с двумя GUI потоками


9-1073499972
ork
2004-01-07 21:26
2004.05.23
Текстовая RPG


1-1084205764
DDA
2004-05-10 20:16
2004.05.23
Возможно ли с фоткать невидемое окно


3-1083086967
как сделать
2004-04-27 21:29
2004.05.23
хочу объединить три поля одной таблицы в одно


3-1083262711
Plus
2004-04-29 22:18
2004.05.23
Проблема с выполнением SQL запроса, Oracle 8, Delphi 6, DOCI 1.19