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

Вниз

Управление службами в Windows XP   Найти похожие ветки 

 
dmdel   (2008-04-10 16:01) [0]

Здраствуйте.
Как можно с помощью Дельфи 6 отключить какую либо службу, а потом ее включить?


 
Palladin ©   (2008-04-10 16:15) [1]


Uses
WinSvc;

Function vtServiceStart(Const p_strComp,p_strServiceName:String):Boolean;
Var
hManager,hSvc:SC_Handle;
nSvcStatus:TServiceStatus;
Temp:PChar;
dwCheckPoint:DWord;
Begin
ZeroMemory(@nSvcStatus,SizeOf(nSvcStatus));
nSvcStatus.dwCurrentState:=1;
hManager:=OpenSCManager(PChar(p_strComp),Nil,SC_MANAGER_CONNECT);
If hManager>0 Then
 Begin
  hSvc:=OpenService(hManager,PChar(p_strServiceName),SERVICE_START or SERVICE_QUERY_STATUS);
  If hSvc>0 Then
   Begin
    Temp:=nil;
    If StartService(hSvc,0,temp) Then
     If QueryServiceStatus(hSvc,nSvcStatus) Then
      While SERVICE_RUNNING<>nSvcStatus.dwCurrentState Do
       Begin
        dwCheckPoint:=nSvcStatus.dwCheckPoint;
        Sleep(nSvcStatus.dwWaitHint);
        If Not QueryServiceStatus(hSvc,nSvcStatus) Then Break;
        If (nSvcStatus.dwCheckPoint<dwCheckPoint) then Break;
       End;
    CloseServiceHandle(hSvc);
   End;
  CloseServiceHandle(hManager);
 End;
Result:=SERVICE_RUNNING=nSvcStatus.dwCurrentState;
End;

Function vtServiceStop(Const p_strMachine,p_strServiceName:String):Boolean;
Var
hManager,hSvc:SC_Handle;
nSvcStatus:TServiceStatus;
dwCheckPoint:DWord;
Begin
hManager:=OpenSCManager(PChar(p_strMachine),Nil,SC_MANAGER_CONNECT);
If hManager>0 Then
 Begin
  hSvc:=OpenService(hManager,PChar(p_strServiceName),SERVICE_STOP or SERVICE_QUERY_STATUS);
  If hSvc>0 Then
   Begin
    If ControlService(hSvc,SERVICE_CONTROL_STOP,nSvcStatus) Then
     If QueryServiceStatus(hSvc,nSvcStatus) Then
      While SERVICE_STOPPED<>nSvcStatus.dwCurrentState Do
       Begin
        dwCheckPoint:=nSvcStatus.dwCheckPoint;
        Sleep(nSvcStatus.dwWaitHint);
        If Not QueryServiceStatus(hSvc,nSvcStatus) Then Break;
        If nSvcStatus.dwCheckPoint<dwCheckPoint Then Break;
       End;
    CloseServiceHandle(hSvc);
   End;
  CloseServiceHandle(hManager);
 End;
Result:=SERVICE_STOPPED=nSvcStatus.dwCurrentState;
End;

Function vtServiceGetStatus(Const p_strMachine,p_strService:String):DWord;
Var
hManager,hSvc:SC_Handle;
nSvcStatus:TServiceStatus;
hStat:DWord;
Begin
hStat:=1;
hManager:=OpenSCManager(PChar(p_strMachine),Nil,SC_MANAGER_CONNECT);
If hManager>0 Then
 Begin
  hSvc:=OpenService(hManager,PChar(p_strService),SERVICE_QUERY_STATUS);
  If hSvc>0 Then
   Begin
    If QueryServiceStatus(hSvc,nSvcStatus) Then hStat:=nSvcStatus.dwCurrentState;
    CloseServiceHandle(hSvc);
   End;
  CloseServiceHandle(hManager);
 End;
Result:=hStat;
End;


 
dmdel   (2008-04-10 16:23) [2]

Спаисбо


 
Palladin ©   (2008-04-10 16:28) [3]

Пожаулста



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

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

Наверх




Память: 0.45 MB
Время: 0.007 c
4-1188376536
leonidus
2007-08-29 12:35
2008.05.11
Как определить типа сглаживания шрифтов в системе?


2-1207943501
Megabyte
2008-04-11 23:51
2008.05.11
Скрытый ввод - готовый компонент


4-1188809871
Prohodil Mimo
2007-09-03 12:57
2008.05.11
Проблема с немодальными окнами.


15-1206971275
Zhekoff
2008-03-31 17:47
2008.05.11
Нужно написать прогу на Delphi


2-1207832097
Polar
2008-04-10 16:54
2008.05.11
Направление текста в QRLabel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский