PDF de programación - Cómo desarrollar un servicio de Windows con Delphi

Imágen de pdf Cómo desarrollar un servicio de Windows con Delphi

Cómo desarrollar un servicio de Windows con Delphigráfica de visualizaciones

Actualizado el 22 de Junio del 2017 (Publicado el 15 de Enero del 2017)
2.753 visualizaciones desde el 15 de Enero del 2017
1,1 MB
25 paginas
Creado hace 13a (19/04/2011)
Cómo desarrollar un servicio de Windows con Delphi
Explicamos paso a paso y con capturas de pantalla cómo realizar un servicio de Windows
mediante el lenguaje de programación Borland Delphi. Mostramos cómo desarrollar una
aplicación especial, un servicio de Windows. Dicha aplicación se integrará perfectamente en los
servicios de Microsoft Windows 7 (o cualquier otro sistema operativo de Microsoft).

• Los servicios de Windows, definición, cómo se configuran, cómo se ven
.
• Desarrollar un servicio de Windows con Delphi
.



• Propósito del servicio Windows que desarrollaremos
.
• Desarrollar o implementar un servicio de Windows con Borland Delphi 6
.





Instalar y desinstalar un servicio de Windows

.

Instalar un servicio de Windows

.

• Desinstalar servicio de Windows

.
.
• Anexo

• Código fuente o source code del servicio de ejemplo de este artículo
.
• Código fuente de un servicio real desarrollado por AjpdSoft

.



• Artículos relacionados
.
• Créditos
.



Los servicios de Windows, definición, cómo se configuran,

cómo se ven

Un servicio de Windows es una aplicación normal con algunas pequeñas variaciones. Es un
programa que es iniciado por el sistema operativo en su arranque (si así ha sido configurado). El
usuario, en una situación normal, no los inicia ni los detiene, es el sistema operativo el que
realiza estas tareas, normalmente de forma automática.
Un servicio de Windows es una aplicación que se ejecuta en segundo plano (background), en
situaciones normales un servicio no interactúa con el usuario, no suelen mostrarse ventanas ni
mensajes que el usuario pueda ver. Suelen ser aplicaciones que realizar tareas y procesos que
no requieren de la intervención del usuario.
Un servicio de Windows se puede iniciar o detener desde la ventana de Servicios de Windows.
Para el caso de Microsoft Windows 7, desde el botón "Iniciar" - "Panel de control" -
"Herramientas administrativas" - "Servicios". En esta ventana podremos ver todos los servicios
instalados en el sistema operativo y su estado (iniciados, detenidos o pausados). Pulsando con
el botón derecho del ratón sobre uno de ellos y seleccionando "Propiedades":

podremos ver las propiedades y configuración para el servicio actual. En la pestaña "General":
• Nombre de servicio: nombre con el que se identifica el servicio para tareas internas

(iniciarlo o detenerlo desde la línea de comandos, etc.).

• Nombre para mostrar: nombre que aparece en la columna "Nombre" de la ventana de

servicios.

desarrollado.

servicio.

• Descripción: descripción larga de lo que hace el servicio o la empresa que lo ha

• Ruta de acceso al ejecutable: carpeta y fichero ejecutable (aplicación) del servicio.
• Tipo de inicio: modo en el que arrancará el servicio: Automático (inicio retrasado),

Automático, Manual o Deshabilitado.

• Estado del servicio: estado actual del servicio: Iniciado, Detenido, Pausado.
• Con los botones "Iniciar", "Detener", "Pausar", "Reanudar" se podrá cambiar el estado del

En la pestaña "Iniciar sesión": desde esta pestaña podremos configurar las opciones de
seguridad, indicando con qué usuario del equipo o del dominio (si el equipo pertenece a un
dominio Windows). Si el servicio requiere de interactuación con el usuario (aunque no es lo
habitual) podremos marcar la opción "Permitir que el servicio interactúe con el escritorio":

En la pestaña "Recuperación" podremos configurar las acciones a realizar en caso de que se
produzca algún error en la ejecución del servicio: qué hacer si se produce el primer error, el
segundo, si se producen más errores:

En la pestaña "Dependencias" se mostrará si el inicio de un servicio depende de que otros
servicios estén iniciados. De ser así, antes de iniciar el servicio los servicios de los que depende
deben estar iniciados. También ocurre a la inversa, si otros servicios dependen de éste y lo
detenemos, también se detendrán los servicios que dependen de éste:

Normalmente, los servicios iniciados suelen verse en el Administrador de tareas de Windows,
desde la pestaña "Procesos":

Nota: en el ejemplo que os estamos mostrando, el servicio se llama "Apache2.2" y como se
puede observar, el proceso se llama "httpd.exe", esto es porque el servicio "Apache2.2" en
realidad ejecuta el fichero "httpd.exe" (como se puede observar más atrás en "Ruta de acceso al
ejecutable").
Hay que tener en cuenta, si decidimos iniciar, detener o cambiar el modo de inicio de algunos
servicios (incluso si los deshabilitamos para impedir su arranque), que algunos servicios son
necesarios para el correcto funcionamiento del sistema operativo, por lo que si cambiamos su
estado puede que éste deje de funcionar correctamente. Por lo que es recomendable no
modificar el estado y tipo de inicio de estos servicios.
En el caso de que nuestro equipo vaya "lento" y pueda ser debido a que tenemos muchos
servicios de aplicaciones innecesarias en ejecución, podremos usar la herramienta "msconfig"
(Configuración del sistema), desde el botón "Iniciar" - escribiendo "msconfig":

En la pestaña "Servicios" de "Configuración del sistema" podremos deshabilitar los servicios que
consideremos que no son necesarios. Marcando la opción "Ocultar todos los servicios de
Microsoft" no se mostrarán los servicios del sistema operativo, por lo que evitaremos cometer
posibles errores. Hay que tener en cuenta que los servicios que desmarquemos en esta ventana
cambiarán el tipo de inicio a "Deshabilitado", por lo que no podrán ejecutarse ni tan siquiera de
forma manual hasta que no volvamos a cambiar el tipo de inicio a Manual o a Automático. Por
ello hay que proceder con precaución o algunas aplicaciones dejarán de funcionar:



Desarrollar un servicio de Windows con Delphi

Propósito del servicio Windows que desarrollaremos

A continuación vamos a explicar paso a paso cómo desarrollar un servicio para Windows. Vamos
a realizar una aplicación que será y se integrará como un servicio de Windows.
Imaginemos que estamos desarrollando una aplicación de Gestión de Incidencias y Solicitudes
para el departamento de Nuevas Tecnologías de nuestra empresa. Imaginemos que esta
aplicación asigna las incidencias que los usuarios dan de alta cuando tienen alguna avería al
técnico correspondiente de forma automática. Esta asignación puede realizarla un servicio que
esté corriendo en segundo plano en un equipo con acceso a la base de datos.
A continuación vamos a explicar cómo hacer un servicio con Borland Delphi 6 (válido para otras
versiones) que comprobará cada 5 minutos si hay incidencias dadas de alta por los usuarios sin
asignar, si las hay las asignará de forma automática a un técnico concreto.
Este es un ejemplo cualquiera, los servicios se pueden utilizar para cualquier tarea que
estimemos oportuna, con un poco de lógica, claro, no se debe confundir el uso específico de un
servicio con el de una aplicación de escritorio. En este ejemplo, la aplicación de escritorio es la
que interactúa con los usuarios, para altas de incidencias y para el departamento técnico para
la gestión de las incidencias. El servicio es una simple tarea que dotará de una utilidad extra a
esta aplicación, que no requiere de intervención del usuario y que se debe ejecutar cada cierto
tiempo durante todo el día.



Desarrollar o implementar un servicio de Windows con

Borland Delphi 6

Abriremos Borland Delphi 6, pulsaremos en "File" - "New" - "Other":

En la pestaña "New", seleccionaremos "Service Application":

El asistente de creación de nueva aplicación (en este caso un servicio) de Delphi, preparará el
entorno y el código de inicialización necesario para desarrollar un servicio de Windows:

Si compilamos ahora mismo la aplicación se ejecutará y se detendrá. A continuación vamos a
indicar los componentes necesarios para que el servicio se ejecute indefinidamente y el modo
de inicializarlo:
1. En primer lugar añadiremos un TTimer, desde la pestaña "System" de la paleta de
componentes, seleccionaremos "Time" y lo añadiremos al "formulario" del servicio:

En las propiedades del TTimer (las mostraremos seleccionado el Timer y pulsando INTRO o F11),
configuraremos las siguientes propiedades:

• Enabled: estableceremos esta propiedad a False, la cambiaremos a True por código, al

"temporizador".



iniciar el servicio.
Interval: indicaremos en esta propiedad que se ejecute cada 5 minutos (300000
milisegundos).

• Name: introduciremos el nombre para el componente Timer, en nuestro caso

A continuación configuraremos las siguientes opciones para el servicio, pulsando en la ventana
del servicio (en el espacio en blando) y pulsando la tecla F11 para mostrar el Object Inspector:

• AllowPause: permitir que el servicio pueda ser pausado por el usuario.
• AllowStop: permitir que el servicio pueda ser detenido por el usuario.
• Dependencies: como hemos explicado anteriormente, si este servicio depende de otros

podremos indicarlo en esta propiedad. Pulsando en el botón de "Dependencies".
Pulsaremos en "Add New" para añadir una nueva dependencia:

En las propiedades de la nueva dependencia, en "Name", nos aparecerá un
desplegable con los servicios de Windows, seleccionaremos del que queramos que
dependa nuestro servicio:

• DisplayName: introduciremos aquí el nombre para mostrar, nombre del servicio que
aparecerá en la columna "Nombre" de los servicios de Windows, puede ser un nombre
largo como "AjpdSoft Asignación automática de tareas".
Interactive: indica si el servicio es interactivo con el escritorio de Windows.


• LoadGroup: nombre del grupo de orden de carga que incluye el servicio. Es utilizado por

otros servicios que tienen dependencias en su ejecución. El orden en que
  • Links de descarga
http://lwp-l.com/pdf1883

Comentarios de: Cómo desarrollar un servicio de Windows con Delphi (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad