Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   no permitir, que me paren el servicio (https://www.clubdelphi.com/foros/showthread.php?t=45286)

l30 28-06-2007 06:39:56

no permitir, que me paren el servicio
 
Hola amigos,

Estoy desarrollando una aplicación que es un servicio, el programa correo bien, pero tengo el siguiente problema y es que el servicio se puede parar. Me explico mejor, hay servicio que se pueden parar y otros no por ejemplo la mayoría de los antivirus no se le puede parar el servicio, ya que tienen deshabilitada esa opción. Como puedo hacer para que mi servicio no se pueda parar.

Gracias por adelantado, espero haberme explicado bien.

delphi.com.ar 28-06-2007 14:30:00

La clase TService tiene una propiedad llamada AllowStop, si esta propiedad es falsa no se puede detener "amigablemente" el servicio.

Saludos!

l30 01-07-2007 19:24:45

Mil gracias.
 
Muchas gracias por la ayuda, era eso mismo lo que pasaba. Pero ahora tengo el siguiente problema, es que el servido tiene una propiedad llamada Startup Type que acepta tres parámetros
1-Automatic
2-Manual
3-Disabled
Estas tres propiedades se pueden modificar, y no quiero que sea así, por ejemplo, mi antivirus cuando trato de cambiarle esa propiedad, me da acceso denegado, aunque este por una cuenta administrativa y quiero que mi servicio haga lo mismo.


Por adelantado muchas gracias.:D

l30 03-07-2007 21:14:50

Ayuda
 
Por favor que alguien me ayude.

gabrielkc 03-07-2007 21:42:43

Porque no haces algo parecido a la idea de Firebird

el fbServer es el servicio de la base de datos pero tiene un guardaespaldas
el fbGuardian, este servicio está alerta para cuando el fbserver se detenga el lo inicia de nuevo.

Por supuesto que si detienes primero el fbguardian pues matas al guardaespaldas y puedes darle con todo al protegido.

l30 03-07-2007 22:21:01

Ayuda
 
Si, así es exactamente como esta funcionando en este caso, el servicio es el que esta verificando si la otra aplicación esta, si no, la inicia, pero es que entonces matan el servicio y se judío la cosa.

gabrielkc 03-07-2007 23:15:20

A OK entonces lo que tienes que hacer es establecer los permisos a la llave del registro que representa tu servicio:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tu servicio

La asignación de permisos si no mal recuerdo lo puedes hacer con un TRegistryObject (el cual no he usado), los componentes los puedes descargar de aca:

http://www.wilsonc.demon.co.uk/delphi_6.htm

el TRegistryObject no es un componente es solo una clase declarada en la Unidad unitNTSecurity del package NTUtils....... espero que te ayude.

Además vienen algunos componentes bastante atractivos.

l30 04-07-2007 02:25:18

Gracias
 
Gracias gabrielkc, voy a bajarme la clase para revisarla y ver si me resuelve el problema.


La franja horaria es GMT +2. Ahora son las 11:12:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi