Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Sistemas operativos > Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-09-2014
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Fallo en tarea programada. Lanzar programa con interfaz gráfica

Hola amigos,
llevo un rato buscando y no encuentro nada para solucionar un pequeño-gran problema.

Resulta que tengo un programa hecho delphi, que extrae una serie de datos, abre una plantilla en excel, tira los datos al excel y salva el resultado en un fichero.

Este programa lo he movido a un servidor y funciona perfecto cuando lo ejecuto "a mano" desde una sesión abierta.

Ahora quiero planificar su ejecución a una hora de la noche en la que no estoy , y he aquí donde me encuentro el problema.

No funciona, ya que al día siguiente voy a buscar el fichero excel generado y no está. El programa no tiene log de actividad para ver sonde podría pararse ( esa es otra historia ).

Supongo que el problema es que al ejecutarse la tarea programada, a pesar de haberla configurado para que se ejecute con mi usuario, no puede arrancar el interface gráfico ya que no hay sesión de usuario abierta ni escritorio donde arrancar el programa y el excel.

Alguien ha tenido el mismo problema y lo ha solucionado ? Cómo?

Gracias por vuestra ayuda.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #2  
Antiguo 26-09-2014
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 21
gatosoft Va camino a la fama
Asumo que no tendrás el código fuente del programa para adaptarlo, lo cual hace irrelevante que esté hecho en Delphi... o en C....

Dices que cuando llegas al otro dia no ves el archivo, pero ¿has hecho la prueba en vivo?, quiero decir: has visto la tarea hacer lo que dice que va a hacer? (con tu sesion abierta), es solo por descartar...

Ya el otro tema es el de la sesion... Solo veo como opción que dejes una sesion de usuario abierta en la noche para que se ejecute....

ahora, si tienes el codigo fuente tendrías que extractar la funcionalidad y programarla como un servicio de windows....

bueno, no se me ocurre mas..
Responder Con Cita
  #3  
Antiguo 26-09-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por fjcg02 Ver Mensaje
a pesar de haberla configurado para que se ejecute con mi usuario, no puede arrancar el interface gráfico ya que no hay sesión de usuario abierta ni escritorio donde arrancar el programa y el excel.
Exacto. Esa es la razon.

La solucion es poner todo el proceso en un servicio de windows.
__________________
El malabarista.
Responder Con Cita
  #4  
Antiguo 26-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
fjcg02,

Cita:
Empezado por fjcg02
...un programa hecho en Delphi...extrae una serie de datos...abre una plantilla en Excel...tira los datos al Excel y salva el resultado...Este programa lo he movido a un servidor y funciona perfecto cuando lo ejecuto "a mano" desde una sesión abierta...quiero planificar su ejecución a una hora de la noche...No funciona...Supongo que el problema es que al ejecutarse la tarea programada...no puede arrancar el interface gráfico ya que no hay sesión de usuario abierta...


Revisa esta información:
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 26-09-2014 a las 04:05:55.
Responder Con Cita
  #5  
Antiguo 26-09-2014
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Gracias por vuestros consejos.

He llegado un poco más lejos. Por dar más pistas.
- El programa se conecta a varias fuentes de datos, extrae los mismos, abre el excel con un fichero que hace de plantilla y vuelco los datos en varias pestañas. Tiene varios "informes" que se pueden seleccionar, pero también permite lanzarlo desde la línea de comandos con el nombre del informe como parámetro.
- El programa funciona perfectamente cuando tengo la sesión abierta y lo lanzo.
- Para comunicar el programa con excel utilizo los servidores de delphi ( versión 7). Creo que es comunicación COM como se llama.

Cuando lo lanzo desde una tarea programada, no funciona. Lo lanzo desde un .bat, donde trazo los pasos que doy.
A pesar de que el programa no deja log ( no era su cometido inicialmente ) intuyo que el programa no puede conectarse con excel aunque lo arranca ( lo veo en la lista de procesos tras lanzarlo ). Al no poder conectarse, supongo que aparece un mensaje de error y queda esperando para siempre que el usuario invisible pulse el botón de "Aceptar" ese mensaje. El ejecutable está en la lista de procesos en ejecución.

Me queda cambiar toda la aplicación para que no arranque la interfaz gráfica, pero no tengo tiempo, y además llevamos esperando 5 meses que un gurú de java monte un aplicación nueva que sustituya a ésta ( que lo vea yo, todavía no lo creo) que hasta ahora funciona perfectamente aunque con alguna carencia . Por ese motivo tampoco me merece la pena modificarlo, estoy en una encrucijada.

Gracias de nuevo por vuestra ayuda. Seguiré investigando.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #6  
Antiguo 26-09-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Recorde que MS no soporta el uso de automatizacion de office de modo servidor (osea, desatendido).

Aqui algunas ideas para darle vuelta:

http://bharathkumaran.wordpress.com/...ndows-service/

Sin embargo, es mejor y mas eficiente generar los archivos sin pasar por excel. Por ejemplo usando

http://www.tmssoftware.com/site/flexcel.asp
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 28-09-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Una tarea programada corre como SYSTEM, un servicio también. El problema de correr como SYSTEM es que el interface gráfico está en otro escritorio que no corresponde con ningún usuario y no es accesible. En algún caso si lo es, como cuando desbloqueamos una sesión o al identificarnos al inicio de ésta. Posiblemente el programa tenga algún otro problema al ser system, además de éste. Para resolver el problema descrito, desarrollé un sistema que permite lanzar una aplicación GUI desde un servicio a nombre del usuario que tenga abierta la sesión activa (que se ejecuta como SYSTEM), no se si puede solucionar tu problema pero puedes intentarlo. Aquí tienes el enlace: Lanzar una aplicación GUI desde un servicio.


Saludos.
Responder Con Cita
  #8  
Antiguo 28-09-2014
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Cita:
Empezado por mamcx Ver Mensaje
Recorde que MS no soporta el uso de automatizacion de office de modo servidor (osea, desatendido).

Aqui algunas ideas para darle vuelta:

http://bharathkumaran.wordpress.com/...ndows-service/

[/url]
He intentado esta solución. En un equipo con xp los pasos son exactamente los que indican el punto 4, permitir a otros usuarios sin sesión abierta activar el servidor dcom.

Sin embargo, en equipos con w7 no aparece en la lista de servicios dcom la aplicación excel.

Seguiré investigando a ver como se recogen los servicios dcom en w2008 y office 2010.

Gracias por vuestras observaciones.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas de Interfaz Grafica al Cambiar nombre de Programa martini002 Varios 2 30-08-2012 16:46:22
Crear una Tarea Programada. DasGrun Windows 1 04-08-2010 11:44:38
Tarea programada en Linux con Firebird 2.5 Axel_Tech Firebird e Interbase 6 16-04-2010 18:52:16
Tarea programada en delphi drykea Varios 6 18-02-2008 16:59:19
hacer una tarea programada Patricio Varios 6 18-09-2007 20:39:21


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


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
Copyright 1996-2007 Club Delphi