FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
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 - |
#2
|
||||
|
||||
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.. |
#3
|
||||
|
||||
Cita:
La solucion es poner todo el proceso en un servicio de windows.
__________________
El malabarista. |
#4
|
||||
|
||||
fjcg02,
Cita:
Revisa esta información: Cita:
Nelson. Última edición por nlsgarcia fecha: 26-09-2014 a las 04:05:55. |
#5
|
||||
|
||||
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 - |
#6
|
||||
|
||||
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. |
#7
|
||||
|
||||
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. |
#8
|
||||
|
||||
Cita:
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 - |
|
|
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 |
|