Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Imprimir desde un TService (https://www.clubdelphi.com/foros/showthread.php?t=8453)

gynch 23-03-2004 14:09:46

Imprimir desde un TService
 
Hola. Tengo una aplicación que se encarga de hacer de servidor de fax rudimentario, de manera que cuando le llega un fichero lo imprime.

La aplicación funciona correctamente siempre que no esté implementada como servicio. En el momento en el que modifico la aplicación para que sea un servicio ( Únicamente construyo esa clase desde el start del servicio TService y lo destruyo en el stop) deja de imprimir. ¿Alguien sabe por qué puede pasar esto?

gynch 24-03-2004 14:06:36

Nuevos descubrimientos
 
Hola. He descubierto que otros servicios como FaxServer tienen dependencias con spooler, y he pensado que igual van por ahí los tiros. ¿Puede ser que no sepa comunicarse con spooler por el motivo que sea?

Pandre 02-04-2004 19:35:23

Que tal gynch?

Hace días estuve haciendo unas pruebecitas con el WinXP en cuanto a los servicios creados con Delphi y demás. Pude ver, que los servicios tienen Denegado por el sistema operativo el interactuar con el escritorio.
Es por ello, por lo que no te permite imprimir, como tampoco te permitirá mostrar Forms o cuadros de diálogo.

SOLUCION: pedir expresamente a WinNT (NT, 2k o XP) que le permita al servicio interactuar con el escritorio, que hay 2 formas posibles:

1) Pon la propiedad Interactive del módulo del TService a TRUE.

2) La otra solución es irte a Panel de Control -> Herramientas Administrativas -> Servicios. Allí seleccionas tu servicio y le das a las Propiedades del mismo. Seleccionas la pestaña "Iniciar sesión". Marcas la opción "Cuenta del sistema local" y marcas la casilla "Permitir a los servicios que interactúen con el escritorio".

Es posible que tu problema sea ese, que WinNT te deniegue utilizar el Shell del escritorio (aquí escritorio se refiere a la interfaz de Windows, no al escritorio de los iconos :) ).

Nota: Es más cómoda la opción 1, la de activar esa propiedad que comento, pero debes tener en cuenta que para que funcione tienes que:
- desinstalar el servicio actual
- compilar el servicio con la propiedad en TRUE
- instalar de nuevo el servicio
(esta característica se activa al instalarlo, por ello que lo debes desinstalar y volver a instalar)
Notarás la comodidad, porque así podrás distribuirlo por varias máquinas sin tener que ir confirgurando uno a uno.

Bueno, espero que con éste método Windows te permita imprimir sin problemas. Tanto si te funciona como si no, postea aquí el resultado, ok?

Venga, un saludo y perdón por la extensión de este mensaje, pero es que estaba aburrido y me he enrollado un poco... Jejeje ;) Byez..z


La franja horaria es GMT +2. Ahora son las 00:17:57.

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