SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: BernalCarlos en Domingo 17 de Septiembre de 2006, 20:14

Título: Consulta Sobre La Ejecucion De Dos Programas
Publicado por: BernalCarlos en Domingo 17 de Septiembre de 2006, 20:14
Como estan,

lo que quiero hacer es lo siguiente,

resulta que trabajo con un programa en DOS, al cual se le da un comando, y este devuelve una informacion en pantalla, y dependiendo de lo que de, se le da otro comando, es sencillo, pero tedioso, pues toca hacerlo cada 5 a 10 minutos, por lo que pense en hacer un pequeño programa, que haga esto por mi, pero no se como puedo obtener esa informacion para la ejecucion del programa, es decir, sincronisarlos, ¿sera que alguien me puede decir como?, y ¿que lenguage seria el mas apropiado?.

Gracias

PD: yo me conecto al programa por telnet
Título: Re: Consulta Sobre La Ejecucion De Dos Programas
Publicado por: tonilope en Domingo 17 de Septiembre de 2006, 20:38
Yo usaría Winsock2 y C.

http://msdn.microsoft.com/library/default....k_reference.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/winsock_reference.asp)

Salu2 ;)
Título: Re: Consulta Sobre La Ejecucion De Dos Programas
Publicado por: Eternal Idol en Domingo 17 de Septiembre de 2006, 20:50
¿Para que usar Winsock? Segun entiendo de eso los dos programas estan en la misma maquina y lo peor es que son de 16 bits ... para MS-DOS un Sistema Operativo monotarea.
Título: Re: Consulta Sobre La Ejecucion De Dos Programas
Publicado por: tonilope en Domingo 17 de Septiembre de 2006, 21:34
Citar
¿Para que usar Winsock? Segun entiendo de eso los dos programas estan en la misma maquina y lo peor es que son de 16 bits ... para MS-DOS un Sistema Operativo monotarea.

Yo lo que he entendido es que se conecta por telnet a otra máquina que corre un programa en DOS y pretende automatizar el proceso con un cliente telnet.

A ver si el interesado nos saca de dudas...

Salu2 ;)
Título: Re: Consulta Sobre La Ejecucion De Dos Programas
Publicado por: Eternal Idol en Domingo 17 de Septiembre de 2006, 22:36
No habia visto la PD pero es muy poco probable que en esa maquina haya un MS-DOS ... no se si tendra importancia o no lo del telnet, si realmente es reimplementar ese protocolo entonces no hay que hacer nada, ya hay clientes ...
Título: Re: Consulta Sobre La Ejecucion De Dos Programas
Publicado por: carmamezo en Lunes 18 de Septiembre de 2006, 09:26
Lo primero sería saber si cuando se refiere a que tiene un programa en MS-DOS se refiere a que el programa corre en modo consola o realmente es un programa MS-DOS puro corriendo en un OS monotarea... En fin, sea como sea, yo lo que entiendo es que el amigo quiere pasar argumentos a un programa y recibir los resultados.
Si el programa es un servidor de correo o algo así y funciona mediante Telnet, pues la solución sería usar Sockets como bien ha indicado Tonilope.
Si ambos programas han sido programados por él mismo, lo más fácil sería usar las herramientas de comunicación entre procesos típicas de windows (siempre que use este SO...) como son la memoria compartida, buzones (mailboxes)...
Si uno de los programas no ha sido programado por él mismo, pues toca trabajar, puedes utilizar la función system() para llamar al programa y pasarle argumentos, pero si este programa deja los resultados en la consola, la cosa se complica, pues no es fácil leer lo que hay en la consola...  También podrías usar la función CreateProcess() de la API de windows...
En fin, todo esto son divagaciones, hasta que no aclares completamente tu pregunta será difícil ayudarte.

Un saludo.  :lightsabre:
Título: Re: Consulta Sobre La Ejecucion De Dos Programas
Publicado por: JuanK en Lunes 18 de Septiembre de 2006, 14:54
Hasta donde entiendo no es una aplicacion MSDOS de 16 bit sino que es una aplicacion de 32 bit con salida por consola, si ese es el caso, por supuesto que lo puedes hacer con WinSock pero si la idea del aplicativo es que ambos porgramas esten en la misma maquina yo te recomendaria que usaras RPC o mas especificamente tratar de usar comunicacion por el IPC.

si usas el .net framewor es facilisimo:

http://msdn2.microsoft.com/es-es/library/s...verchannel.aspx (http://msdn2.microsoft.com/es-es/library/system.runtime.remoting.channels.ipc.ipcserverchannel.aspx)


sino lo usas igonoro como lo podras hacer con IPC en c++, pero puedes averiguar.
Título: Re: Consulta Sobre La Ejecucion De Dos Programas
Publicado por: Eternal Idol en Lunes 18 de Septiembre de 2006, 15:16
IPC es interpocess communications y abarca varias tecnicas como las ya nombradas memoria compartida, mailslots, pipes, RPC, sockets y mas. Por supuesto que todas estas tecnicas estan expuestas en la API de Windows y se pueden usar desde C/C++.