Dos programas (Manual y Automático) que no se cierren? [C/C++]

Iniciado por Citrusl, 14 Noviembre 2014, 22:20 PM

0 Miembros y 2 Visitantes están viendo este tema.

Citrusl

Cómo hago para crear dor programas que realizen lo siguiente:

Abro el programa1... este se cierra automaticamente/manualmente y cuando está cerrado abre el programa2.

Se abre el programa2 que se cierra automaticamente/manualmente y cuando está cerrado abre el programa1...

Eso en un bucle infinito.

Sé como crear los archivos, pero cómo hago para que cuando se cierre me abra el otro?  :huh:

ivancea96

En el final de cada programa, escribir un "system("start programa2")" ?

Citrusl

Tengo esto... y ahora que hago?

#include <windows.h>
#include <stdio.h>

int main(){

FILE *txt;
txt=fopen("PROGRAMA1.txt","r");

if(!txt)
        {
                txt = fopen("PROGRAMA1.txt", "w");
                printf("\n Archivo creado! ");
        }

}

ivancea96

Poner esa linea que escribí arriba al final. Quizás poniendo "start /I ..." vaya mejor.

daryo

#4
Cita de: ivancea96 en 14 Noviembre 2014, 22:22 PM
En el final de cada programa, escribir un "system("start programa2")" ?
el problema es que eso no ofrece ningun control . se abrira una y otra vez hasta llenar la memoria.Podrias hacer que el programa 1 busque el proceso del 2 y el programa 2 busque el proceso del 1.


creo que buscas algo como esto:
http://foro.elhacker.net/programacion_cc/source_aciendo_un_proceso_inmortal-t186943.0.html
buenas

Citrusl

Gracias! Es un buen ejemplo pero es mucho más complicado.  :o

Buscaba algo más simple. Ese codigo usa inyección de dlls, eso es algo más avanzado. Conozco poco y nada sobre eso. Ni siquiera sé como runearlo.

Hay una manera más simple?

Con el System puedo hacer que me abra el editpad. Pero Cómo le puedo decir que se cierre y me abra el otro y empieze el loop infinito?

  :huh:

rir3760

Cita de: Citrusl en 15 Noviembre 2014, 00:39 AMCon el System puedo hacer que me abra el editpad. Pero Cómo le puedo decir que se cierre y me abra el otro y empieze el loop infinito?
Puedes utilizar el comando start con la opción /wait para que este espere hasta que la aplicación se cierre, un ejemplo:
#include <stdlib.h>

int main(void)
{
   while (1){
      system("start /wait notepad.exe");
      system("start /wait calc.exe");
   }
   
   return EXIT_SUCCESS;
}


Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

ivancea96

Al decir que tenías dos programas, he supuesto que ambos los has creado tú.