Cita:
Empezado por MON___
Gracias, Jachguate. Efectivamente, ¡queda mucho mejor!
ChackAll, tienes razón y en eso había pensado; no obstante es la primera vez que me he encontrado con la creación de un servicio y no lo logro. Por más que reviso los argumentos dados en CreateService no encuentro el error. Digamos que en este punto el que sea APACHE es secundario. Ahora me preocupa sólo saber dónde cometo el error.
Por cierto: lo que estaba intentando era instalar el Apache (con PHP y MySQL) en una memoria Flash; al introducirla en un portátil (que no lo tiene instalado) lanzase una aplicación DELPHI que comprobase la existencia del servicio y, de no existir, lo crease.
¡Gracias a los dos! ¡Feliz año!
|
Ok. el problema es simple; estas creando la conexión con el Administrador de servicios con el parametro
SC_MANAGER_CONNECT, osea solo estas estableciendo una conexión con el mismo; pero no estas habiitando la opción de creación de servicios, utiliza:
Código Delphi
[-] ServicioControl := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
En el caso anterior estas habilitando la siguiente conbinación
Código Delphi
[-]STANDARD_RIGHTS_REQUIRED or
SC_MANAGER_CONNECT or
SC_MANAGER_CREATE_SERVICE or
SC_MANAGER_ENUMERATE_SERVICE or
SC_MANAGER_LOCK or
SC_MANAGER_QUERY_LOCK_STATUS or
SC_MANAGER_MODIFY_BOOT_CONFIG
Tambien hay un error en la constante de acceso en la creación del servicio, utiliza esto:
Código Delphi
[-]...
Servicio := CreateService(ServicioControl, 'Apache 2', 'Servidor Apache', SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS,
...
Saludos
Edito, y re-edito: había otro error