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

Вниз

Служба   Найти похожие ветки 

 
Nata   (2004-08-06 15:38) [0]

Здравствуйте мастера! Очень прошу помогите…как мне  остановить службу на удаленном компьютере(компьютера в домене у меня права администратора) если можно фрагментик программки…заранее всем спасибо….


 
Rouse_ ©   (2004-08-06 15:41) [1]

var
 SCManager, Service: SC_HANDLE;
 ServiceStatus: TServiceStatus;
begin
 SCManager := OpenSCManager("\\RemoteComp", nil, SC_MANAGER_ALL_ACCESS);
 if SCManager <> 0 then
 try
   Service := OpenService(SCManager, "имя сервиса", SERVICE_STOP);
   if Service <> 0 then
   try
     if not ControlService(Service, SERVICE_CONTROL_STOP, ServiceStatus)
       and (ServiceStatus.dwCurrentState = SERVICE_STOPPED) then
     begin
       ShowMessage(SysErrorMessage(GetLastError));
       Exit;
     end;
     btnStopStart.Enabled := False;
     btnClose.Enabled := False;
     btnStart.Enabled := True;
   finally
     CloseServiceHandle(Service);
   end;
 finally
   CloseServiceHandle(SCManager);
 end;


 
Nata   (2004-08-06 15:43) [2]


> Rouse_
блин я тебя обожаю!!!!!!!!!!!!!!!!!!!!!!!!!
правда я еще не пробовала ну все равно спасибо тебе....чмок!


 
Nata   (2004-08-06 15:46) [3]

слушай а подключать ничего не надо????
USES ????


 
Rouse_ ©   (2004-08-06 16:07) [4]

WinSvc


 
Nata   (2004-08-06 18:12) [5]

:( ты знаешь запустилось но не раотает нажимаю на кнопку вообще ничего не происходит....:(
может я че не так сделала глянь....

procedure TForm1.Button1Click(Sender: TObject);
var
SCManager, Service: SC_HANDLE;
ServiceStatus: TServiceStatus;
begin
SCManager := OpenSCManager("\\127.0.0.1", nil, SC_MANAGER_ALL_ACCESS);
if SCManager <> 0 then
begin

try

  Service := OpenService(SCManager, "Telnet", SERVICE_STOP);
form1.Label1.Caption:=inttostr(service);

  if Service <> 0 then
  try

    if not ControlService(Service, SERVICE_CONTROL_STOP, ServiceStatus)
      and (ServiceStatus.dwCurrentState = SERVICE_STOPPED) then
    begin
      ShowMessage(SysErrorMessage(GetLastError));
      Exit;
    end;
//     btnStopStart.Enabled := False;
//     btnClose.Enabled := False;
//     btnStart.Enabled := True;
  finally
    CloseServiceHandle(Service);
  end;

finally
  CloseServiceHandle(SCManager);
  end;
end;

end;


 
Rouse_ ©   (2004-08-06 18:15) [6]

Service := OpenService(SCManager, "Telnet", SERVICE_STOP);

замени на
 Service := OpenService(SCManager, "TlntSvr", SERVICE_STOP);


 
Rouse_ ©   (2004-08-06 18:19) [7]

А в качестве параметра сервиса нужно передавать имя службы а не выводимое имя...

Запусти services.msc и посмотри в свойствах сервиса...


 
Nata   (2004-08-06 18:20) [8]


> Rouse_ ©   (06.08.04 18:15) [6]
> Service := OpenService(SCManager, "Telnet", SERVICE_STOP);
>
> замени на
>  Service := OpenService(SCManager, "TlntSvr", SERVICE_STOP);
Да супер остановила но вот вопрос как запустить???? мне надо еще и потом запускать подскажи....


 
Nata   (2004-08-06 18:27) [9]

я понимаю я тебе надоела но еще вопрос у меня есть служба она запускается C:\CARDSERV\CSERVICE.EXE
вот если я пишу Service := OpenService(SCManager, "CSERVICE", SERVICE_STOP);
что делать???


 
Rouse_ ©   (2004-08-06 22:05) [10]

Запустить соответственно:

var
 SCManager, Service: SC_HANDLE;
 P: PChar;
begin
 SCManager := OpenSCManager("\\RemoteComp", nil, SC_MANAGER_ALL_ACCESS);
 if SCManager <> 0 then
 try
   Service := OpenService(SCManager, "имя сервиса", SERVICE_START);
   if Service <> 0 then
   try
     P := nil;
     if not StartService(Service, 0, P) then
     begin
       ShowMessage(SysErrorMessage(GetLastError));
       Exit;
     end;
   finally
     CloseServiceHandle(Service);
   end;
 finally
   CloseServiceHandle(SCManager);
 end;


> я понимаю я тебе надоела но еще вопрос у меня есть служба она запускается C:\CARDSERV\CSERVICE.EXE
> вот если я пишу Service := OpenService(SCManager, "CSERVICE", SERVICE_STOP);
> что делать???


Не понял вопроса...


 
Rouse_ ©   (2004-08-06 22:15) [11]

Если последний вопрос по поводу инсталяции сервиса в SCM - то у "нормального" сервиса должна поддерживаться инсталляция из командной строки...

В противном случае можно конечно и ручками...

//  Инсталяция сервисов в SCM
// =============================================================================
function Install: Boolean;
const
 StartType =
{$IFDEF SERVICE_DEBUG}
   SERVICE_DEMAND_START;
{$ELSE}
   SERVICE_AUTO_START;
{$ENDIF}
var
 SCManager, Service: SC_HANDLE;
 Info: String;
begin
 SCManager := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
 if SCManager <> 0 then
 try
   Service := CreateService(SCManager, ListenerServiceName, ListenerServiceDisplayName,
     SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS or SERVICE_INTERACTIVE_PROCESS,
     StartType, SERVICE_ERROR_NORMAL, PChar(""" + ParamStr(0) + "" -service"),
     nil, nil, nil, nil, nil);
   if Service <> 0 then
   try
     Result := ChangeServiceConfig(Service, SERVICE_NO_CHANGE,
       SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, nil, nil,
       nil, nil, nil, nil, nil);
     Info := ListenerServiceInfo;
     if Result then
       Result := ChangeServiceConfig2(Service,
         SERVICE_CONFIG_DESCRIPTION, @Info);
   finally
     CloseServiceHandle(Service);
   end
   else
     Result := GetLastError = ERROR_SERVICE_EXISTS;
 finally
   CloseServiceHandle(SCManager);
 end
 else
   Result := False
end;



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

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

Наверх




Память: 0.5 MB
Время: 0.025 c
8-1090436143
parovoZZ
2004-07-21 22:55
2004.10.17
DirectDraw и кирилица


1-1096624987
leonidus
2004-10-01 14:03
2004.10.17
Как програмно заблокировать pop-up окна?


8-1090516951
Pa5ha
2004-07-22 21:22
2004.10.17
Движок на D3D дайте плз


1-1096814924
V l a d i m i r
2004-10-03 18:48
2004.10.17
Экземпляр формы (создание)


1-1096707265
zStas
2004-10-02 12:54
2004.10.17
idBase64Encoder