Autor Tema: Ejecutar Aplicacion Externa en VB.Net  (Leído 5830 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jonhyrey

  • Sv Full Member
  • *
  • Mensajes: 558
Ejecutar Aplicacion Externa en VB.Net
« : agosto 10, 2007, 10:07:12 am »
Hola a todos.

En este momento tengo que darle mantenimiento a una aplicación que creamos que consta de 2 ejecutables. La aplicación 1 funciona como que fuera un servicio que cada cierto tiempo esta guardando la informacion que recibe. La aplicacion 2 verifica que efectivamente se está guardando y lo demuestra con colores, dado el pesado proceso de estas 2 aplicaciones se han hecho separadas. Lo que quiero hacer es cerrar la aplicación 1 si esta no obtiene los valores que recibe y con la misma aplicación 1 abrir el sistema a un cierto tiempo. Esto porque una DLL que obtiene valores desde un puerto COM no funciona como debe y debe reiniciarse.

Saludos
 :thumbsup:



Desconectado vlad

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 6351
    • Qualium.net
Re: Ejecutar Aplicacion Externa en VB.Net
« Respuesta #1 : agosto 10, 2007, 08:38:59 pm »
Pues sinceramente no creo que sea un proceso tan pesado... mas bien era de diseñar el programa a modo de que cada proceso corriera en un hilo distinto, y asi te ahorrabas muchos de los problemas que tenes ahorita...

Pero bueno, si no lo podes cambiar, o no lo queres cambiar entonces explica algunas cosas, como Aplicacion 1 podria iniciar algo si la cerras previamente?.

En todo caso esto es lo que pedis en el titulo:
http://www.devx.com/dotnet/Article/7914

Desconectado rcguillen

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 2320
Re: Ejecutar Aplicacion Externa en VB.Net
« Respuesta #2 : agosto 10, 2007, 08:44:07 pm »
y q no puedes manejar parametros entre ambas aplicaciones?

talvez si detallas mas q hacen asi especificamente veriamos por donde anda el problema
-:Rcguillen-NoMercy:-
-:Es inutil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos:-

Desconectado Jonhyrey

  • Sv Full Member
  • *
  • Mensajes: 558
Re: Ejecutar Aplicacion Externa en VB.Net
« Respuesta #3 : agosto 11, 2007, 10:24:05 am »
Bueno.... la aplicación 1 es un módulo que obtiene los datos de una DLL que ejecuta un procedimiento (Sub) de recepción de valores. En esta aplicación manejo varios hilos: un hilo para procesar los valores de 20 basculas, otro hilo para calcular los tiempos de inactividad de cada bascula, y otro hilo que captura y guarda las alarmas que las basculas tienen activadas.

Lo que pasa es que la DLL no es muy eficiente... y a veces se satura o se traba.... no sé..... y deja de capturar los valores de las basculas. Y esto genera conflictos para un tercer programa que no les mencioné.

La aplicación 2 nació a partir de este problema... es un "Verificador de valores" que esta corriendo mediante un timer una sentencia que verifica que se están guardando los valores, si se guardan muestra un color verde para cada molino y sino muestra un color rojo y un mensaje que les dice que reinicien la aplicación 1, pero como es una industria, los supervisores no tienen tiempo para estar verificando los colores.

Entonces lo que queremos hacer es poner en el verificador de valores, lo que les explicaba, que cierre y abra automáticamente la aplicación 1 si no se están guardando los valores en un cierto tiempo.

Gracias Vlad por el artículo me ha ayudado mucho para entender que puedo hacer.

Si tienen alguna sugerencia se los agradeceré mucho.

Saludos



Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Ejecutar Aplicacion Externa en VB.Net
« Respuesta #4 : agosto 11, 2007, 03:45:12 pm »
Agrega la direccion de la aplicacion que queres estar reiniciando a el path de windows, y despues desde la aplicacion que verifica si esta funcionando bien, elimina el proceso con taskkill y espera despues un rato y volvelo a iniciar.

Información de taskkill
Código: [Seleccionar]
http://www.tech-recipes.com/rx/446/xp_kill_windows_process_command_line_taskkill


Desconectado vlad

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 6351
    • Qualium.net
Re: Ejecutar Aplicacion Externa en VB.Net
« Respuesta #5 : agosto 11, 2007, 04:02:16 pm »
Mas bien creo que la mejor solución entonces sería corregir la "dll problematica", puesto que eso solo te esta generando mas problemas e ineficiencia...

Supongo que tienes acceso al codigo de esa "aplicacion 1", mi consejo sería que mejor te enfocaras a depurarla, o la pusieras aca (si te es permitido) el codigo para examinar los posibles puntos de error.

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Ejecutar Aplicacion Externa en VB.Net
« Respuesta #6 : agosto 11, 2007, 05:29:14 pm »
Si la solucion definitivamente tendría que ser reprogramar y buscar una solucion, por más datos que leyera si es un proceso hecho correctamente no deberia de trabarse, a menos que el dispositivo conectado sea el que hace la saturación.

Pero si no tienen ningun problema en que se este cerrando y abriendo la aplicación, y no hay una perdida por hacer eso, ni modo hay que optar por el remiendo :S

Desconectado Jonhyrey

  • Sv Full Member
  • *
  • Mensajes: 558
Re: Ejecutar Aplicacion Externa en VB.Net
« Respuesta #7 : agosto 13, 2007, 09:51:17 am »
Pues a mi me gustaria reemplazarla o depurarla si es posible, el problema es que esa DLL la hizo una empresa aparte, y ellos dicen que no la pueden arreglar mas.... asi que ni modo creo que con el Process Kill y el articulo de lanzar aplicaciones externas voy a solucionar ese problema.

Les agradezco mucho