Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

Сервис   Найти похожие ветки 

 
Levin_610 ©   (2006-07-14 12:50) [0]

как зарегестрировать программу, как сервис?


 
sniknik ©   (2006-07-14 12:53) [1]

выполнить с параметром /install (если конечно она написана именно как сервис)


 
isasa ©   (2006-07-14 13:03) [2]

http://www.ishodniki.ru/art/artshow.php?id=90&cat=1&show=delphi

вот эта штука повторяется в нете n-раз.
Если сделать как там, то, по моему, параметр /i :)


 
Levin_610 ©   (2006-07-14 13:22) [3]

спасибо


 
prosto_Maria ©   (2006-07-14 16:09) [4]

там есть функция ServiceInitialization, что она делает и как её описать?


 
novill ©   (2006-07-14 16:22) [5]


> prosto_Maria ©   (14.07.06 16:09) [4]
> там есть функция ServiceInitialization

"Там" - Это где? :)


 
prosto_Maria ©   (2006-07-14 16:40) [6]

http://www.ishodniki.ru/art/artshow.php?id=90&cat=1&show=delphi


 
Пусик ©   (2006-07-14 22:23) [7]


> Levin_610 ©   (14.07.06 12:50) 


srvany.exe из пакета Resouce Kit. Позволит запустить программу как сервис.

http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en

либо ищи отдельно 3 файла:
instsrv.exe
srvany.exe
srvany.wri (инструкция).


 
Leonid Troyanovsky ©   (2006-07-14 22:41) [8]


> prosto_Maria ©   (14.07.06 16:40) [6]


Видишь ли, Маша (ничего, если я запросто?)
Для того, чтобы зарегистрировать прилож aka service,
она д.б. написана aka service. О чем уже ранее было и сказано.

Подробности можно найти на

http://rsdn.ru/?article/baseserv/svcadmin-1.xml & etc

--
Regards, LVT.


 
isasa ©   (2006-07-14 23:13) [9]

prosto_Maria ©   (14.07.06 16:09) [4]

там есть функция ServiceInitialization, что она делает и как её описать?


Очередной переписчик этой "библии" забыл ее закоментировать. Эта функция может быть написана(а может и нет) пользователем для инициализации каких-нибудь данных сервиса. Показывает место, где это уместно делать. В коментарий ее.


 
isasa ©   (2006-07-14 23:19) [10]

OFFTOP
Чистое любопытство. Зачем два ника?
Levin_610 ©
prosto_Maria ©

Да еще такие разные?


 
Leonid Troyanovsky ©   (2006-07-14 23:21) [11]


> isasa ©   (14.07.06 23:19) [10]

> Да еще такие разные?


Я могу предложить версии, если ты поделишься
основаниями для идентефикации.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2006-07-14 23:25) [12]


> Leonid Troyanovsky ©   (14.07.06 23:21) [11]

> Я могу предложить версии, если ты поделишься
> основаниями для идентефикации.


Так основания шиты белыми нитками,
то, делится версиями я не буду, sorry.

--
Regards, LVT.


 
Levin_610 ©   (2006-07-17 09:29) [13]

у меня почему-то не заходило, под моим ником, а просто_Мария полезный ник), я написал программу, как сервис, но как прописать, чтобы она регистрировалась?


 
Ketmar ©   (2006-07-17 10:25) [14]

попросить SCM зарегистрировать. %-)


 
Levin_610 ©   (2006-07-17 10:27) [15]

до этого я уже дошёл, я вроде прошу, но видимо как-то не так)


 
Fay ©   (2006-07-17 10:38) [16]

2 Levin_610 ©   (17.07.06 10:27) [15]
Значит не дошёл


 
Levin_610 ©   (2006-07-17 10:47) [17]

последнее высказывание было необходимо) - я делаю так:
hSCMgr := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
 if (hSCMgr <> 0) then
 begin
   hNewService := CreateService(hSCMgr, PChar(ServiceName), PChar(ServiceName),
     STANDARD_RIGHTS_REQUIRED, SERVICE_WIN32_OWN_PROCESS,
     SERVICE_AUTO_START, SERVICE_ERROR_NORMAL,
     PChar(ExecutablePath), nil, nil, nil, nil, nil);
- это все, что нужно, чтобы SCM зарегистрировал службу? или нужно ещё что-то? Или может в этом коде есть ошибка?


 
isasa ©   (2006-07-17 10:54) [18]

Вот фрагмент болванки _tmain сервиса. На D, к сожалению нет, т.к. не юзаю.
Но идея, думаю, будет понятна. API функции -- те-же. Лежать должен в *.dpr, если не ошибаюсь.

TCHAR srvName[] = _T("DiSpy");
TCHAR srvDispName[] = _T("DiSpy Internet Broadband Router Spyer");
threadDataStruct thData;

int _tmain(int argc, _TCHAR* argv[])
{
...
  //Service Installing
    if(wcscmp(argv[1],L"/i")==0)
    {
       wprintf(L"Service installing ...\n");
       SC_HANDLE schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);  // Open SC Manager
       if (NULL == schSCManager)
       {
        LPVOID lpMsgBuf;
        DWORD dw = GetLastError();
        FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
                        NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );
        wprintf(L"OpenSCManager failed. (0x%08X)%s\n", dw, lpMsgBuf);
        LocalFree(lpMsgBuf);
        return 0;
       }
       SC_HANDLE schService = CreateService(schSCManager, srvName, srvDispName, SERVICE_ALL_ACCESS,    
                SERVICE_WIN32_OWN_PROCESS, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, thData.szPath,
                NULL, NULL, NULL, NULL, NULL);
       if (schService == NULL)
       {
           LPVOID lpMsgBuf;
           DWORD dw = GetLastError();
           FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
                 NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );
         wprintf(L"CreateService failed. (0x%08X)%s\n", dw, lpMsgBuf);
         CloseServiceHandle(schSCManager);
         LocalFree(lpMsgBuf);
         return 0;
       }
       CloseServiceHandle(schService);
       wprintf(L"Service installing succeeded:\n");
       wprintf(L"Service display name: \"%s\"\n", srvDispName);
       wprintf(L"Service file path: \"%s\"\n", thData.szPath);
   return 0;
    }
    //Service Uninstalling
    if(wcscmp(argv[1],L"/u")==0)
    {
       wprintf(L"Service uninstalling ...\n");
       SC_HANDLE schSCManager = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS); // Open SC Manager
       if (NULL == schSCManager)
       {
         LPVOID lpMsgBuf;
         DWORD dw = GetLastError();
         FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
                          NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );
         wprintf(L"OpenSCManager failed. (0x%08X)%s\n", dw, lpMsgBuf);
         LocalFree(lpMsgBuf);
         return 0;
       }
       SC_HANDLE schService = OpenService( schSCManager, srvName, DELETE);
       if (schService == NULL)
       {
         LPVOID lpMsgBuf;
         DWORD dw = GetLastError();
         FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
            NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );
         wprintf(L"OpenService failed. (0x%08X)%s\n", dw, lpMsgBuf);
         CloseServiceHandle(schSCManager);
         LocalFree(lpMsgBuf);
         return 0;
       }

       if (!DeleteService(schService))
       {
         LPVOID lpMsgBuf;
         DWORD dw = GetLastError();
         FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
     NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );
         wprintf(L"DeleteService failed. (0x%08X)%s\n", dw, lpMsgBuf);
         CloseServiceHandle(schSCManager);
         CloseServiceHandle(schService);
         LocalFree(lpMsgBuf);
         return 0;
       }

       wprintf(L"DeleteService succeeded.\n");
       wprintf(L"Service was deleted without error.\n");

       CloseServiceHandle(schSCManager);
       CloseServiceHandle(schService);
       return 0;
     }
...


 
Fay ©   (2006-07-17 11:08) [19]

2 Levin_610 ©   (17.07.06 10:47) 17]
> STANDARD_RIGHTS_REQUIRED
SC_MANAGER_CREATE_SERVICE не лучше? И ваще, где анализ результата выполнения CreateService?


 
Levin_610 ©   (2006-07-17 11:23) [20]

вроде та часть программы у меня написана так же, значит проблема не в этом


 
Levin_610 ©   (2006-07-17 11:27) [21]

всё есть - CreateServise


 
Levin_610 ©   (2006-07-17 11:34) [22]

а что нужнопрописать в основной ф-ции function MainServiceThread(p: Pointer): DWORD; stdcall;
 var hWinSta, hDesktop, hOldWinSta, hOldDesktop: THandle;
begin
 sleep(10);
end;
ещё что-то?


 
Fay ©   (2006-07-17 12:00) [23]

2 Levin_610 ©   (17.07.06 11:34) [22]
>  что нужнопрописать в основной ф-ции
Предполагается, что ты это уже знаешь.
Не парь мозги, возьми готовый класс службы.


 
Levin_610 ©   (2006-07-17 12:05) [24]

ссылку на какой-нибудь нормальный готовый класс можешь дать?


 
Levin_610 ©   (2006-07-17 12:23) [25]

пожалуйста


 
isasa ©   (2006-07-17 12:31) [26]

:)
Если по-простому, то

while exitFlag=0 do begin
 <делаем что-то>
 Sleep(<скоко надо, если надо>);
end;

Или, если хочешь с ним общаться через WM_<message>, то GetMessage в цикле.


 
isasa ©   (2006-07-17 12:33) [27]

Судя по вопросам, все-таки, сходи по ссылке
Leonid Troyanovsky ©   (14.07.06 22:41) [8]
на rsdn.
Наступит просветление. :)


 
Levin_610 ©   (2006-07-17 12:52) [28]

я прочиталЮ и вроде бы всё нормально в моей программе - надо было идти в футболисты)


 
Fay ©   (2006-07-17 14:40) [29]

2 Levin_610 ©   (17.07.06 12:52) [28]
Что возвращает CreateService?


 
Пусик ©   (2006-07-17 14:48) [30]


> Levin_610 ©   (17.07.06 12:05) [24]
> ссылку на какой-нибудь нормальный готовый класс можешь дать?
>


Вот рабочий код.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
 ExtCtrls;

type

 TThreadTimer=class(TThread)
 protected
   FS: TFileStream;
   procedure Execute; override;
 end;

 TTwoService = class(TService)
   procedure ServiceExecute(Sender: TService);
   procedure ServiceStart(Sender: TService; var Started: Boolean);
   procedure ServiceStop(Sender: TService; var Stopped: Boolean);
   procedure ServiceContinue(Sender: TService; var Continued: Boolean);
   procedure ServicePause(Sender: TService; var Paused: Boolean);
 private
   { Private declarations }
 public
   function GetServiceController: TServiceController; override;
   { Public declarations }
 end;

var
 TwoService: TTwoService;
 ThrTimer: TThreadTimer;

implementation

{$R *.DFM}

{TTwoService}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
 TwoService.Controller(CtrlCode);
end;

function TTwoService.GetServiceController: TServiceController;
begin
 Result := ServiceController;
end;

procedure TTwoService.ServiceExecute(Sender: TService);
begin
   while not terminated do
   begin
     ServiceThread.ProcessRequests(True);
   end;
end;

procedure TTwoService.ServiceStart(Sender: TService; var Started: Boolean);
begin
 ThrTimer := TThreadTimer.Create(True);
 ThrTimer.FreeOnTerminate := True;
 try
   if not FileExists("c:\log.tmp") then
   begin
     ThrTimer.FS := TFileStream.Create("c:\log.tmp",fmCreate or fmShareDenyWrite);
     ThrTimer.FS.Free;
   end;
   ThrTimer.FS := TFileStream.Create("c:\log.tmp",fmOpenReadWrite or fmShareDenyWrite);

   Started := True;
 except
   ThrTimer.Terminate;
   Started := False;
 end;
 ThrTimer.Resume;
end;

procedure TTwoService.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
 ThrTimer.Terminate;
 ThrTimer.Resume;
 Stopped := True;
end;

procedure TTwoService.ServiceContinue(Sender: TService;
 var Continued: Boolean);
begin
 ThrTimer.Resume;
 Continued := True;
end;

procedure TTwoService.ServicePause(Sender: TService; var Paused: Boolean);
begin
ThrTimer.Suspend;
Paused := True;
end;

{ TThreadTimer }

procedure TThreadTimer.Execute;
var
 s: String;
begin
 while not Terminated do
 begin
   try
     s := FormatDateTime("hh:nn:ss",Now)+#13#10;
     FS.Write(s[1],Length(s));
     Sleep(1000);
   except
   end;
 end;
 FS.Free;
end;

end.


 
Fay ©   (2006-07-17 14:54) [31]

2 Пусик ©   (17.07.06 14:48) [30]
if not FileExists("c:\log.tmp") then
  begin
    ThrTimer.FS := TFileStream.Create("c:\log.tmp",fmCreate or fmShareDenyWrite);
    ThrTimer.FS.Free;
  end;
  ThrTimer.FS := TFileStream.Create("c:\log.tmp",fmOpenReadWrite or fmShareDenyWrite);


что это за порнография?


 
Пусик ©   (2006-07-17 15:12) [32]


> Fay ©   (17.07.06 14:54) [31]
> 2 Пусик ©   (17.07.06 14:48) [30]if not FileExists("c:\log.
> tmp") then   begin     ThrTimer.FS := TFileStream.Create("c:
> \log.tmp",fmCreate or fmShareDenyWrite);     ThrTimer.FS.
> Free;   end;   ThrTimer.FS := TFileStream.Create("c:\log.
> tmp",fmOpenReadWrite or fmShareDenyWrite);что это за порнография?
>


Внимательней код изучай.


 
DrPass ©   (2006-07-17 15:14) [33]

А почему не
if not FileExists("c:\log.tmp") then
   ThrTimer.FS := TFileStream.Create("c:\log.tmp",fmCreate or fmShareDenyWrite)
else
 ThrTimer.FS := TFileStream.Create("c:\log.tmp",fmOpenReadWrite or fmShareDenyWrite);
?


 
Fay ©   (2006-07-17 15:18) [34]

2 Пусик ©   (17.07.06 15:12) [32]
> Внимательней код изучай.
Я изучил. Порнография в чистом виде.


 
Пусик ©   (2006-07-17 15:29) [35]


> Fay ©   (17.07.06 15:18) [34]
> 2 Пусик ©   (17.07.06 15:12) [32]> Внимательней код изучай.
> Я изучил. Порнография в чистом виде


Вот иди и займись ей(порнографией).


> DrPass ©   (17.07.06 15:14) [33]


Дело в том, что при TFileStream.Create("c:\log.tmp",fmCreate or fmShareDenyWrite) нужный эффект(доступ на чтение из других программ) не будет достигнут.


 
Пусик ©   (2006-07-17 15:31) [36]

> DrPass ©   (17.07.06 15:14) [33]

Да и не в том вопрос. Приведен рабочий пример. Как и просил человек.
А все вокруг - излишне.


 
Игорь Шевченко ©   (2006-07-17 17:10) [37]

Порнография на самом деле находится в SysUtils, не позволяющая передать в функцию FileCreate параметр режима разделения доступа.


 
Fay ©   (2006-07-17 17:13) [38]

2 Пусик ©   (17.07.06 15:29) [35]
> Дело в том, что при TFileStream.Create
А CreateFile не судьба?


 
Пусик ©   (2006-07-17 17:14) [39]


> Fay ©   (17.07.06 17:13) [38]
> 2 Пусик ©   (17.07.06 15:29) [35]> Дело в том, что при TFileStream.
> CreateА CreateFile не судьба?


А прежде подумать, а потом говорить, тоже не судьба?


 
Игорь Шевченко ©   (2006-07-17 17:20) [40]


> ThrTimer.FS := TFileStream.Create("c:\log.tmp",fmCreate
> or fmShareDenyWrite);


or fmShareDenyWrite - лишнее. fmCreate равен $FFFF


 
Пусик ©   (2006-07-17 17:27) [41]


> Игорь Шевченко ©   (17.07.06 17:20) [40]
> > ThrTimer.FS := TFileStream.Create("c:\log.tmp",fmCreate
> > or fmShareDenyWrite);or fmShareDenyWrite - лишнее. fmCreate
> равен $FFFF


Совершенно верно.

Но стоит ли этот совершенно никчемный пример, всего лишь демонстрирующий, как правильно организовать работу сервиса, используя готовый класс Delphi, разбиратть по косточкам?


 
Fay ©   (2006-07-17 17:30) [42]

2 Пусик ©   (17.07.06 17:14) [39]
> А прежде подумать, а потом говорить, тоже не судьба?
О чём это, таком умном, нужно было подумать?


 
Пусик ©   (2006-07-17 17:43) [43]


> Fay ©   (17.07.06 17:30) [42]
> 2 Пусик ©   (17.07.06 17:14) [39]> А прежде подумать, а
> потом говорить, тоже не судьба?О чём это, таком умном, нужно
> было подумать?


О вечном, непреходящем. А также см. [41].

Прежде, чем цепляться к пуговицам, подумай о цели и назначении предмета одежды.

Не надо цепляться и говорить, что на майке нет пуговиц (ничего себе - майка без пуговиц!), так как она не предназначена для того, чтобы к ней пуговицы нашивали. Разве что для людей с немного измененной психикой.


 
Игорь Шевченко ©   (2006-07-17 17:48) [44]

Пусик ©   (17.07.06 17:43) [43]

flame > /dev/null


 
Levin_610 ©   (2006-07-18 09:36) [45]

спасибо за помощь, я уже написал, всё получилось, спасибо


 
isasa ©   (2006-07-18 10:35) [46]

:)
ну вот, а ты боялся ...


 
isasa ©   (2006-07-18 10:38) [47]

Да.
Статью с rsdn почитай. Там про время откликов потоков сервиса -- очень актуальнай момент(не только для корректного завершения)


 
Levin_610 ©   (2006-07-18 12:24) [48]

правильно боялся, у меня почему-то, регистроваться-то регистрируется, и удаляется, но не запускается, если пытаюсь запустить, то пишет следующее: ошибка2: не удаётся найти указанный файл


 
isasa ©   (2006-07-18 13:06) [49]

А проверить, где зарегистрирован модуль службы и есть ли он там. :)

       SC_HANDLE schService = CreateService(
               schSCManager, // SCManager database
               srvName, // name of service
               srvDispName, // service name to display
               SERVICE_ALL_ACCESS, // desired access
               SERVICE_WIN32_OWN_PROCESS, // service type
               SERVICE_DEMAND_START, // start type
               SERVICE_ERROR_NORMAL, // error control type
               szPath, // path to service"s binary  <-- откуда взял?
               NULL, // no load ordering group
               NULL, // no tag identifier
               NULL, // no dependencies
               NULL, // LocalSystem account
               NULL); // no password


 
Levin_610 ©   (2006-07-18 14:06) [50]

szPath, // path to service"s binary  <-- откуда взял? - где-то прочситал, что так можно сделать) , а это неправильно?  кстати там я ошибся в адресе, правда тебперь при запуске не отвечает моя программа на запрос, но это уже другая история)


 
Levin_610 ©   (2006-07-18 14:21) [51]

я вообщем локализовал ошибку, она в ф-ции СервисСтарт, не у кого нет рабочей версии этой функции?) Странная вещь, когда я расскомментирую описания процедуры СервисСтарт,  у меня не может сервис зарегестрироваться, как такое может быть?


 
Levin_610 ©   (2006-07-18 15:07) [52]

теперь служба запускается, но дает ошибку сразу же, где можно искать ошибку: при приёме данных от SCM, что-то с потоком может быть не так? - конечно понимаю - глупо спрашивать, где в моём коде ошибка) , но мало ли у кого есть идеи. Но и всё же, если у кого есть servicestart и servicestop нормальные...пожалуйста)


 
Levin_610 ©   (2006-07-19 09:21) [53]

вопрос всё ещё в силе)


 
Levin_610 ©   (2006-07-19 12:30) [54]

у меня заходит сюда:   if not StartServiceCtrlDispatcher(DispatchTable[0]) then
   LogError("StartServiceCtrlDispatcher Error");
т.е. неправидьно выполняется StartServiceCtrlDispatcher, с чем это может быть связано?
помогите пожалуйста.


 
isasa ©   (2006-07-19 12:49) [55]

Levin_610 ©   (19.07.06 12:30) [54]
Перепиши приблизительно так, и почитай, что пишет

if not StartServiceCtrlDispatcher(DispatchTable[0]) then begin
  ErrCode:=GetLastError();
  LogError(
               "StartServiceCtrlDispatcher Error "+
               format("%d(%x) %s", [ErrCode, ErrCode, SysErrorMessage(ErrCode)])
             );
end;


 
Levin_610 ©   (2006-07-19 13:55) [56]

хорошо, спасибо, ща попробую.


 
Levin_610 ©   (2006-07-19 14:20) [57]

после того, как я ввёл этот код - он вывел следующее на экран:
StartServiceCtrlDispatcher Error 1063<427> - а дальше набор символов на непонятном языке


 
isasa ©   (2006-07-19 15:10) [58]

:)
Ну а так

if not StartServiceCtrlDispatcher(DispatchTable[0]) then begin
 ErrCode:=GetLastError();
 MessageBox(0,
   PChar("StartServiceCtrlDispatcher Error "+format("%d(%x) %s", [ErrCode, ErrCode, SysErrorMessage(ErrCode)])),
   "Start Service Error ",
   MB_OK or MB_ICONERROR or MB_SERVICE_NOTIFICATION);
end;


Кодировка?
Винда русская, небось от 2000 или ХР, т.е. консоль - юникод, в файл пишем как со всеми вытекающими.
Кстати, дома на русской тоже надо потренироваться.


 
isasa ©   (2006-07-19 15:16) [59]

:)
Должно так(на англ.)
StartServiceCtrlDispatcher Error 1063(427) The service process could not connect to the service controller

Криво расставил точки входа.

DispatchTable[0].lpServiceName:=<ServiceName>;
DispatchTable[0].lpServiceProc:=@ServiceProc;

DispatchTable[1].lpServiceName:=nil;
DispatchTable[1].lpServiceProc:=nil;


 
Levin_610 ©   (2006-07-19 15:22) [60]

пишет, что одна копия службы уже запущена, но я удалил тогда службу эту, он всё равно пишет тоже самое


 
Levin_610 ©   (2006-07-19 15:24) [61]

DispatchTable[0].lpServiceName:=ServiceName;
DispatchTable[0].lpServiceProc:=@ServiceProc;

DispatchTable[1].lpServiceName:=nil;
DispatchTable[1].lpServiceProc:=nil;
У меня вот так вот, но ServiceName = "ServiceName"


 
isasa ©   (2006-07-19 15:37) [62]

Ctrl+Shift+Esc - закладка Processes, ищем, удаляем.
Зарегистрировать, запустить, остановить, приостановить, восстановить, удалить (Register, Start, Stop, Pause, Resume, Unregister) - разные действия.
Надо читать первоисточники.
Так не пойдет - сумбур. :)


 
Levin_610 ©   (2006-07-19 16:13) [63]

у меня нет его в процессах


 
Levin_610 ©   (2006-07-19 16:21) [64]

я нашёл в чем там глюк был, теперь он другое пишет:
"Процесс службы не может установить связь с контроллером службы"


 
Levin_610 ©   (2006-07-20 09:01) [65]

Как написать СервисКонтроллер, чтобы всё действовало?


 
Fay ©   (2006-07-20 09:45) [66]

http://www.booka.ru/booka_topic_5114?id=17892


 
Levin_610 ©   (2006-07-20 09:52) [67]

спасибо конечно, но я бедный стцдент до зарплаты, а зарплату я не получу, если не сделаю программу - замкнутый круг получается), по
тому я спрошу, если кто захочет ответит:
почему-то если запускать прогу через прописания /install, то потом связь устанавливается видимо, во всяком случае служба запускается, но мне нужно, чтобы служба автоматически устанавливалась, у меня это прописано, но тогда появляется вышеупомянутая ошибка, это значит, что что-то не совсем правильно в CreatNTService?


 
Levin_610 ©   (2006-07-20 15:49) [68]

вопросы всё ещё в силе, про СервиКонтрол и последний, буду благодарен за помощь



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

Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.64 MB
Время: 0.013 c
3-1149167900
VALUA
2006-06-01 17:18
2006.08.06
IBQUERy и Filter


2-1153395744
MOUSE911
2006-07-20 15:42
2006.08.06
Таблицы БД


1-1151256672
Billis
2006-06-25 21:31
2006.08.06
Как в DBGrid узнать какая строка выделена?


2-1153366193
RobinBad
2006-07-20 07:29
2006.08.06
TRichEdit Line?


2-1152720693
TStas
2006-07-12 20:11
2006.08.06
Как зовут функцию, обраную ExtractRelativePath?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский