SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: spyfly en Sábado 10 de Junio de 2006, 16:03

Título: Abrir Programa Externo Desde Boton
Publicado por: spyfly en Sábado 10 de Junio de 2006, 16:03
Queremos abrir un documento de texto llamado documento.txt con el notepad cuando se apriete un boton en nuestro programa. Lo hemos intentado con la función system("notepad documento.txt"); pero nos abre una ventana de simbolo de sistema ademas del notepad. La cuestión es que nosotros queremos que se abra solo el notepad.

un saludo.
Título: Re: Abrir Programa Externo Desde Boton
Publicado por: tonilope en Sábado 10 de Junio de 2006, 18:47
Probad con:
Código: Text
  1. system("call documento.txt");
  2.  

Salu2 ;)
Título: Re: Abrir Programa Externo Desde Boton
Publicado por: spyfly en Domingo 11 de Junio de 2006, 16:53
Hemos probado con system("call documento.txt"); y nos ocurre lo mismo que antes, nos abre una ventana de simbolo del sistema y la ventana del archivo de texto.¿Alguien sabe otra forma para que la ventana de simbolo de sistema no se abra?

Gracias
Título: Re: Abrir Programa Externo Desde Boton
Publicado por: tonilope en Domingo 11 de Junio de 2006, 18:55
Prueba con:

Código: Text
  1. system("start documento.txt");
  2.  

Salu2 ;)
Título: Re: Abrir Programa Externo Desde Boton
Publicado por: spyfly en Miércoles 19 de Julio de 2006, 17:19
Ahora nos abre una pantalla de simbolo de sistema abre el notepad y se cierra rapidamente la pantalla de simbolo de sistema. A la vista de la gente pega como un pantallazo negro, hace lo que busdcabamos pero no queda demasiado bien. Sabeis otro modo de hacer lo mismo?

Gracias. Un saludo.
Título: Re: Abrir Programa Externo Desde Boton
Publicado por: x.cyclop en Jueves 20 de Julio de 2006, 00:29
Agrega system("pause"); y stdlib.h.
Título: Re: Abrir Programa Externo Desde Boton
Publicado por: spyfly en Jueves 20 de Julio de 2006, 08:49
Nos hemos explicado mal. Nuestro programa lo que hace es:

1. Pulsamos un boton
2. Abre la ventana de simbolo de sistema
3. Abre el notepad
4 cierra la ventana de simbolo de sistema (el notepad sigue abierto)

Nosotros lo que queremos es que no se llegue a abrir la ventana del simbolo del sistema porque esteticamente no nos gusta el pantallazo que pega.

¿Se podría hacer con algo parecido con onOpenDocument?

Gracias. Un saludo.
Título: Re: Abrir Programa Externo Desde Boton
Publicado por: SteelX en Domingo 23 de Julio de 2006, 17:25
Hola no se muy bien que quieres hacer. pero si lo que quires es abrir cualquier aplicacion desde tu programa prueba con

WinExec();

aqui un pequeño ejemplo
Código: Text
  1.  
  2. WinExec("C:\\Archivos de programa\\InternetExplorer\\IEXPLORE.EXE",SW_MAXIMIZE);
  3.  
  4.  

esto abrirá el internet explorer maximizado, puedes abrir el notepad desde aqui, sin la consola.
Título: Re: Abrir Programa Externo Desde Boton
Publicado por: spyfly en Lunes 24 de Julio de 2006, 10:12
Hemos probado eso que nos dices. Nos funciona, si que nos abre un archivo txt con el notepad, la usamos así;

WinExec("C:/Windows/notepad.exe experiencia.txt",SW_SHOWNORMAL);

El problema que tenemos ahora es que si el notepad.exe no estuviese en esa ruta no funciona,no?. Nos referimos, a que el windows de otro pc este instalado en otra carpeta diferente (c:\windowsXP). ¿Como podriamos arreglar eso?¿Se podira buscar la ruta automaticamente?

Lo que hemos pensado es copiar el notepad.exe en nuetro directorio donde esta la carpeta debug y donde esté el archivo experiencia.txt. Poniendo:

WinExec("notepad.exe experiencia.txt",SW_SHOWNORMAL);

Si que nos funciona, y como el notepad ocupa poco nos da = añadirlo a nuestro programa. Pero si existiese otra manera mejor pues la utilizariamos.

Ahora nuestro principal problema es que al estar en nuestro programa y ejecutar esa linea:
WinExec("notepad.exe experiencia.txt",SW_SHOWNORMAL);

Se nos muestra la barra de tareas de windows, ¿eso no se puede modificar?¿No se podria mostrar maximizado a la resolucion de la pantalla o que aparezca simplemente por encima de nuestro programa ya que en el nuestro no se ve esa barra.
Título: Re: Abrir Programa Externo Desde Boton
Publicado por: SteelX en Lunes 24 de Julio de 2006, 16:12
No hay problema con el notepad.exe ni aunque estuviera en la unidad M\: pues windows es el directorio global de el sistema operativo, asi que si un programa se encuentra alli o en el system32. de seguro se va a ejecutar. Si quieres en inicio->ejecutar. escribe notepad.. y se abre. Si lo que quieres es tenerlo fuera del directorio de windows ya te toca implementar variables de entorno(muchos instaladores traen para configurar esa opcion). pero para probar, las encuentras en el panel de control->sistema->opciones avanzadas, pulsa en el boton variables de entorno.
En esa ventana, en la parte donde  esta variables del sistema, editas el valor path y agregas el directorio de la aplicacion que  vas a ejecutar y listo. tambien puedes llamar la aplicacion que agregaste al path, desde el ejecutar que esta en inicio.

para que salga maximizado solo colocas SW_MAXIMIZE donde tienes SW_SHOWNORMAL. si quieres ocupar toda la pantalla bueno eso no lo se muy bien en MFC pero con otros c++ es con FULLSCREEN. busca algo relacionado con fullscreen
Título: Re: Abrir Programa Externo Desde Boton
Publicado por: spyfly en Lunes 24 de Julio de 2006, 17:26
ok, hemos probado lo del notepad y nos funciona bien aunque no este en el directerio de nuestro programa. Como tu dices efectivamente todo lo que esta en el directorio Windows se puede ejecutar sin indicarle la ruta.

Lo de SW_MAXIMIZE ya lo habiamos probado y se nos muestra la barra de tareas de windows, ¿eso no se puede modificar?¿No podría aparecer simplemente por encima de nuestro programa ya que en él no se ve esa barra por que está ajustado a la resolucion de la pantalla???