• Domingo 22 de Diciembre de 2024, 10:39

Autor Tema:  Ejecutar procesos en otra maquina remotamente  (Leído 5835 veces)

ragutierrez

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Ejecutar procesos en otra maquina remotamente
« en: Martes 13 de Marzo de 2012, 16:03 »
0
Bueno la idea principal es la siguiente:
Desde un computador B se envía un mensaje al computador A cuando furtivamente se cierra un programa que es vital para un sistema X. Entonces el computador A, que recibe información de varios computadores, obtiene la IP del computador B y el computador A necesita volver a ejecutar el programa en el computador B para evitar pérdida de datos.

Estoy trabajando en un programita alterno para primeramente poder ejecutar cualquier programa de cualquier computador pero se me hace muy complicado... y estoy preguntando e investigando pero no encuentro información al respecto...  :think: :think: :think:

Ayudenme por favor...

Adjunto la solucion que tengo...
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:Ejecutar procesos en otra maquina remotamente
« Respuesta #1 en: Martes 13 de Marzo de 2012, 18:39 »
0
Que tal ragutierrez, te comento que alguna vez me pidieron algo similar, sin embargo como el proyecto no siguio adelante deje de investigar, una posible solución puede ser la transmisión de datos a travéz de Sockets, te recomiendo leas aquí:

http://msdn.microsoft.com/es-es/library/w89fhyex%28VS.80%29.aspx

Voy a seguir investigando, si encuentro algo que te sirva te sigo apoyando..

Saludos.

@gabio87

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re:Ejecutar procesos en otra maquina remotamente
« Respuesta #2 en: Martes 13 de Marzo de 2012, 21:51 »
0
Si esos ordenadores no están en un controlador de dominio y/o terminal server, veo difícil que un ordenador pueda ejecutar algo en otro.

Necesitas hacerte un servicio de windows, que correrá en cada ordenador en donde tenga que ejecutarse dicho programa crítico. Ese servicio debe monitorizar la ejecución del programa (por ejemplo obteniendo la lista de procesos y comprobando si está, o que el programa abra un socket con el servicio). Luego ese servicio se encargará de comunicar al servidor qué ha pasado con el programa en cuestión mediante, de nuevo, un socket.

Claro que el servicio también puede caerse... pero en ese caso le marcas que se reinicie solo en las propiedades del servicio y windows se encarga.
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

U2_Caparzo

  • Miembro activo
  • **
  • Mensajes: 45
  • Nacionalidad: cl
  • Super duper divertido xDD
    • Ver Perfil
Re:Ejecutar procesos en otra maquina remotamente
« Respuesta #3 en: Miércoles 14 de Marzo de 2012, 00:35 »
0
bueno, suponiendo que se puede "esconder" un programa en ejecucion, osea que sea visible solo de la ventana de procesos, crear un timer en unos 30 segs, y revisar si tal proceso esta activo y si no iniciarlo, recuerdo hacer eso que era algo como

un bool que revisaba si existia el proceso
private bool existe()
{
Foreach (Process p in pr)
{
if (p.Name == nombreprocesoquedeseasmantenerabierto)
   return true;
}
return false;
}

entonces en el metodo del timer
if(existe == false)
   Process.Start("direccion del proceso necesario")

aunque no se si esto satisface todas tus necesidades
Lo dificil se hace... lo imposible se intenta
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.(Frase de Albert Einstein)

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re:Ejecutar procesos en otra maquina remotamente
« Respuesta #4 en: Jueves 15 de Marzo de 2012, 10:27 »
0
bueno, suponiendo que se puede "esconder" un programa en ejecucion, osea que sea visible solo de la ventana de procesos, crear un timer en unos 30 segs, y revisar si tal proceso esta activo y si no iniciarlo, recuerdo hacer eso que era algo como

un bool que revisaba si existia el proceso
private bool existe()
{
Foreach (Process p in pr)
{
if (p.Name == nombreprocesoquedeseasmantenerabierto)
   return true;
}
return false;
}

entonces en el metodo del timer
if(existe == false)
   Process.Start("direccion del proceso necesario")

aunque no se si esto satisface todas tus necesidades

En ese caso, si el programa vigilante se cae, ya no puedes hacer nada. En el caso de un servicio (más o menos con tu código) y se cae por cualquier motivo, windows lo vuelve a levantar automáticamente.
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

U2_Caparzo

  • Miembro activo
  • **
  • Mensajes: 45
  • Nacionalidad: cl
  • Super duper divertido xDD
    • Ver Perfil
Re:Ejecutar procesos en otra maquina remotamente
« Respuesta #5 en: Sábado 17 de Marzo de 2012, 20:13 »
0
bueno, suponiendo que se puede "esconder" un programa en ejecucion, osea que sea visible solo de la ventana de procesos, crear un timer en unos 30 segs, y revisar si tal proceso esta activo y si no iniciarlo, recuerdo hacer eso que era algo como

un bool que revisaba si existia el proceso
private bool existe()
{
Foreach (Process p in pr)
{
if (p.Name == nombreprocesoquedeseasmantenerabierto)
   return true;
}
return false;
}

entonces en el metodo del timer
if(existe == false)
   Process.Start("direccion del proceso necesario")

aunque no se si esto satisface todas tus necesidades

En ese caso, si el programa vigilante se cae, ya no puedes hacer nada. En el caso de un servicio (más o menos con tu código) y se cae por cualquier motivo, windows lo vuelve a levantar automáticamente.

A que te refieres con un servicio? es que la verdad no te entiendo muy bien :s

¿Que podria causar que el programa se cerrase?
Lo dificil se hace... lo imposible se intenta
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.(Frase de Albert Einstein)

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re:Ejecutar procesos en otra maquina remotamente
« Respuesta #6 en: Martes 20 de Marzo de 2012, 11:02 »
0
Explicación sobre los servicios: http://msdn.microsoft.com/es-es/library/d56de412(v=vs.90).aspx

El que una aplicación se cierre sola (sin que el usuario la cierre desde el administrador de tareas, por ejemplo) suele deberse a que tiene algún error. En teoría, y sin errores, no debería cerrarse nunca. Lo más típico cuando pasa algo así suelen ser fugas de memoria, acceso a memoria sin inicializar y/o recursos que no existen.

El .NET tiene un bug serio que hace que a veces las aplicaciones se cierren sin lanzar ninguna excepción (bueno, sí que las lanzan, pero se gestionan de forma oculta y la aplicación simplemente se cierra), aunque lo más común es que te salte la ventanita de la excepción no controlada (es una cosa que deberías mirar: si el usuario ve o no ve dicha ventana).

Y son tantas las cosas que pueden fallar (incluso en .NET)... ¿Usas hilos? ¿Sockets? ¿Alguna DLL de terceros? ...

Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

corleoni31

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re:Ejecutar procesos en otra maquina remotamente
« Respuesta #7 en: Viernes 23 de Marzo de 2012, 09:46 »
0
Alquien sabe como lanzar dos vídeos identicos en dos pc distintos y que esten sincronizados ? en C#
Gracias