Форум: "Система";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизСоздание службы под 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c