国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
delphi 啟動、停止服務(wù)函數(shù)
uses
Winsvc;

function GetServiceStatusString(sServiceName: string): string;//檢測服務(wù)狀態(tài)
var
  hService, hSCManager: SC_HANDLE;
  SS: TServiceStatus;
begin
  hSCManager := OpenSCManager(nil, SERVICES_ACTIVE_DATABASE, SC_MANAGER_CONNECT);
  if hSCManager = 0 then
  begin
    result := 'Can not open the service control manager';
    exit;
  end;
  hService := OpenService(hSCManager, PChar(sServiceName), SERVICE_QUERY_STATUS);
  if hService = 0 then
  begin
    CloseServiceHandle(hSCManager);
    result := '無法找到(' + sServiceName + ')服務(wù)';
    exit;
  end;
  if not QueryServiceStatus(hService, SS) then
    result := '無法查詢服務(wù)狀態(tài)'
  else
  begin
    case SS.dwCurrentState of
      SERVICE_CONTINUE_PENDING:
        result := sServiceName + '服務(wù),重啟動';
      SERVICE_PAUSE_PENDING:
        result := sServiceName + '服務(wù),即將停頓';
      SERVICE_PAUSED:
        result := sServiceName + '服務(wù),已停頓';
      SERVICE_RUNNING:
        result := sServiceName + '服務(wù),已運行';
      SERVICE_START_PENDING:
        result := sServiceName + '服務(wù),即將啟動';
      SERVICE_STOP_PENDING:
        result := sServiceName + '服務(wù),即將停止';
      SERVICE_STOPPED:
        result := sServiceName + '服務(wù),已停止';
    else
      result := 'Unknown Status';
    end;
  end;
  CloseServiceHandle(hSCManager);
  CloseServiceHandle(hService);
end;
function RunServies(sServiceName:String):Boolean;//啟動某個服務(wù);
var
  schService:SC_HANDLE;
  schSCManager:SC_HANDLE;
  ssStatus:TServiceStatus;
  Argv:PChar;
begin
  schSCManager:=OpenSCManager(nil,nil,SC_MANAGER_ALL_ACCESS);
  schService:=OpenService(schSCManager,Pchar(sServiceName),SERVICE_ALL_ACCESS);
  result := True;
  try
  if StartService(schService,0,Argv) then
  begin
  while (QueryServiceStatus(schService,ssStatus)) do
  begin
    Sleep(500);
    Application.ProcessMessages;
    if ssStatus.dwCurrentState=SERVICE_START_PENDING then
      Sleep(500)
    else
      Break;
    end;//while
  if ssStatus.dwCurrentState=SERVICE_RUNNING then
    result := True
  else
    result := False;
  end
  else
    result := False;
  finally
    CloseServiceHandle(schService);
    CloseServiceHandle(schSCManager);
  end;
end;
function StopServies(sServiceName:String):Boolean;//停止某個服務(wù);
var
  schService:SC_HANDLE;
  schSCManager:SC_HANDLE;
  ssStatus:TServiceStatus;
begin
  schSCManager:=OpenSCManager(nil,nil,SC_MANAGER_ALL_ACCESS);
  schService:=OpenService(schSCManager,Pchar(sServiceName),SERVICE_ALL_ACCESS);
  try
  if ControlService(schService,SERVICE_CONTROL_STOP,ssStatus) then
  begin
    Sleep(1000);
  while (QueryServiceStatus(schService,ssStatus)) do
  begin
    Application.ProcessMessages;
    if ssStatus.dwCurrentState=SERVICE_STOP_PENDING then
    Sleep(1000)
    else
    break;
    end; //while
  if ssStatus.dwCurrentState=SERVICE_STOPPED then
    result := True
  else
    result := False;
  end
  else
    result := False;
  finally
    CloseServiceHandle(schService);
    CloseServiceHandle(schSCManager);
  end;
end;

function ServiceIsInstalled(ServiceName: string): Boolean;//安裝服務(wù)
var
   SCManager: THandle;
   HService: THandle;
begin
   Result :
= false;
  
if HInst = 0 then
    
Exit;

  
if Assigned(OpenSCManager) and Assigned(OpenService) and
     Assigned(CloseServiceHandle) 
then
   begin
     SCManager :
= OpenSCManager(nil, nil, GENERIC_READ);
    
if SCManager <> 0 then
     begin
       HService :
= OpenService(SCManager, PChar(ServiceName), GENERIC_READ);
       Result :
= HService <> 0;
      
if HService <> 0 then
       begin
         CloseServiceHandle(HService);
      
end;
       CloseServiceHandle(SCManager);
    
end;
  
end;

function ChangeServiceConfig(ServiceName: string; StartType: Integer): Boolean;//配置服務(wù)
var
   SCManager, HService: THandle;
   PConfig: PQueryServiceConfigA;
   Buf: DWORD;
begin
   Result := False;
  if HInst = 0 then Exit;
   SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
  if SCManager <> 0 then
   begin
     HService := OpenService(SCManager, PChar(ServiceName), SERVICE_ALL_ACCESS);
    if HService <> 0 then
     begin
      New(PConfig);
       QueryServiceConfigA(HService, PConfig, SizeOf(_QUERY_SERVICE_CONFIGA), Buf);
       ChangeServiceConfigA(HService, PConfig.dwServiceType,
         StartType, PConfig.dwErrorControl, PConfig.lpBinaryPathName,
         PConfig.lpLoadOrderGroup, 0, PConfig.lpDependencies,
         PConfig.lpServiceStartName, '', PConfig.lpDisplayName);

       CloseServiceHandle(HService);
       DisPose(PConfig);
       Result := True;
    end
    else
       Result := False;
     CloseServiceHandle(SCManager);
  end
  else
     Result := False;
end;
end;
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
delphi 啟動停止windows服務(wù) 轉(zhuǎn)
Delphi把程序注冊為服務(wù)
Delphi禁用XP防火墻源碼
NT Service Control App
WINDOWS后臺服務(wù)程序編寫
wininet 返回 utf8
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服