zoukankan      html  css  js  c++  java
  • 用delphi如何实现启动停止windows服务

    function StartService(AServName: string): Boolean; //use WinSvc
    var
    SCManager, hService: SC_HANDLE;
    lpServiceArgVectors: PChar;
    begin
    SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
    Result := SCManager <> 0;
    if Result then
    try
    hService := OpenService(SCManager, PChar(AServName), SERVICE_ALL_ACCESS);
    Result := hService <> 0;
    if (hService = 0) and (GetLastError = ERROR_SERVICE_DOES_NOT_EXIST) then
    Exception.Create('The specified service does not exist');
    if hService <> 0 then
    try
    lpServiceArgVectors := nil;
    Result := WinSvc.StartService(hService, 0, PChar(lpServiceArgVectors));
    if not Result and (GetLastError = ERROR_SERVICE_ALREADY_RUNNING) then
    Result := True;
    finally
    CloseServiceHandle(hService);
    end;
    finally
    CloseServiceHandle(SCManager);
    end;
    end;

    //如果要轉載本文請注明出處,免的出現版權紛爭,我不喜歡看到那種轉載了我的作品卻不注明出處的人 Seven{See7di#Gmail.com}
    function StopService(AServName: string): Boolean;
    var
    SCManager, hService: SC_HANDLE;
    SvcStatus: TServiceStatus;
    begin
    SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
    Result := SCManager <> 0;
    if Result then
    try
    hService := OpenService(SCManager, PChar(AServName), SERVICE_ALL_ACCESS);
    Result := hService <> 0;
    if Result then
    try //停止并卸载服务;
    Result := ControlService(hService, SERVICE_CONTROL_STOP, SvcStatus);
    //删除服务,这一句可以不要;
    // DeleteService(hService);
    finally
    CloseServiceHandle(hService);
    end;
    finally
    CloseServiceHandle(SCManager);
    end;
    end;


  • 相关阅读:
    postgresql强制删除数据库
    oracle ORA-31655
    oracle 删除表空间与用户
    Nginx 配置文件说明
    docker学习笔记---基本命令
    SSH的 Write failed: Broken pipe 问题
    nginx 修改文件上传大小限制
    "echo 0 /proc/sys/kernel/hung_task_timeout_secs" disable this message
    Centos8 配置静态IP
    Prometheus Node_exporter 详解
  • 原文地址:https://www.cnblogs.com/see7di/p/2239923.html
Copyright © 2011-2022 走看看