EXE转成服务运行的问题
如题,将一个EXE转成服务来运行,在启动服务的时候报1053错误,服务没有响应控制请求
创建服务
function TFWebMail.CreateServer():Boolean;var res: DWORD;begin //服务存在不继续创建服务 if isServiceExits() then begin //开启服务 StartServer(); Result := True; Exit; end; Try m_scmHandle := OpenScmHandle();//创建控制服务句柄 m_svcinfo.HscManager := m_scmHandle; m_svcinfo.ServerName := SERVICE_NAME; m_svcinfo.DisplayName := SERVICE_NAME; m_svcinfo.DesireAccess := SC_MANAGER_ALL_ACCESS; m_svcinfo.ServiceType := SERVICE_WIN32_OWN_PROCESS; m_svcinfo.StartType := SERVICE_DEMAND_START; m_svcinfo.ErrorControl := SERVICE_ERROR_SEVERE; m_svcinfo.Dependencies := ''; m_svcinfo.ServerStartName := '0'; m_svcinfo.Password := '0'; m_svcinfo.BinaryPathName := m_data.m_AppPath + 'RecordServer\recordServer.exe'; //创建服务 m_svrHandle := CreateService( m_svcinfo.HscManager,//服务控制管理程序维护的登记数据库的句柄,由系统函数OpenSCManager返回 Pchar(m_svcinfo.ServerName),//以NULL 结尾的服务名,用于创建登记数据库中的关键字 Pchar(m_svcinfo.DisplayName),//以NULL 结尾的服务名,用于用户界面标识服务 m_svcinfo.DesireAccess,//指定服务返回类型 m_svcinfo.ServiceType,//指定服务类型 m_svcinfo.StartType,//指定何时启动服务 m_svcinfo.ErrorControl,//指定服务启动失败的严重程度 pchar(m_svcinfo.BinaryPathName),//指定服务程序二进制文件的路径 pchar(''),//指定顺序装入的服务组名 LPDWORD(0), //忽略,NULL Pchar(m_svcinfo.Dependencies),//指定启动该服务前必须先启动的服务或服务组 nil,//Pchar(m_svcinfo.ServerStartName),//以NULL 结尾的字符串,指定服务帐号。如是NULL,则表示使用LocalSystem 帐号 nil//Pchar(m_svcinfo.Password)//以NULL 结尾的字符串,指定对应的口令。为NULL表示无口令。但使用LocalSystem时填NULL ); If m_svrHandle = 0 Then Begin res := GetLastError(); ShowMessage(IntToStr(res)); Result := False; Exit; End; Except Result := False; Exit; End; //启动服务 StartServer(); Result := True;end;function TFWebMail.StartServer():Boolean;var sav: PAnsiChar; serstatu: _SERVICE_STATUS;begin if QueryServiceStatus(m_svrHandle,serstatu) then begin if serstatu.dwCurrentState <> SERVICE_RUNNING then begin if not StartService(m_svrHandle,0,sav) then begin ShowMessage('启动服务失败:'+ IntToStr(GetLastError)); Result := False; Exit; end; end; Result := True; Exit; end; Result := False;end;