• Domingo 22 de Diciembre de 2024, 05:55

Autor Tema:  Abrir Programa Externo Desde Boton  (Leído 3994 veces)

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Abrir Programa Externo Desde Boton
« en: Sábado 10 de Junio de 2006, 16:03 »
0
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.
La vida es dura
             SPYFLY


tonilope

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Abrir Programa Externo Desde Boton
« Respuesta #1 en: Sábado 10 de Junio de 2006, 18:47 »
0
Probad con:
Código: Text
  1. system("call documento.txt");
  2.  

Salu2 ;)

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Abrir Programa Externo Desde Boton
« Respuesta #2 en: Domingo 11 de Junio de 2006, 16:53 »
0
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
La vida es dura
             SPYFLY


tonilope

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Abrir Programa Externo Desde Boton
« Respuesta #3 en: Domingo 11 de Junio de 2006, 18:55 »
0
Prueba con:

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

Salu2 ;)

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Abrir Programa Externo Desde Boton
« Respuesta #4 en: Miércoles 19 de Julio de 2006, 17:19 »
0
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.
La vida es dura
             SPYFLY


x.cyclop

  • Miembro de PLATA
  • *****
  • Mensajes: 1039
  • Nacionalidad: mx
    • Ver Perfil
Re: Abrir Programa Externo Desde Boton
« Respuesta #5 en: Jueves 20 de Julio de 2006, 00:29 »
0
Agrega system("pause"); y stdlib.h.

- Great works aren't produced on the first try. [Ernest Hemingway]
- Be ambitious, yet realistic in your dreams. Do something that makes a positive impact. Don’t let the nay-sayers get you down. [Bjarne Stroustrup]

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Abrir Programa Externo Desde Boton
« Respuesta #6 en: Jueves 20 de Julio de 2006, 08:49 »
0
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.
La vida es dura
             SPYFLY


SteelX

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
Re: Abrir Programa Externo Desde Boton
« Respuesta #7 en: Domingo 23 de Julio de 2006, 17:25 »
0
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.
Inside the code

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Abrir Programa Externo Desde Boton
« Respuesta #8 en: Lunes 24 de Julio de 2006, 10:12 »
0
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.
La vida es dura
             SPYFLY


SteelX

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
Re: Abrir Programa Externo Desde Boton
« Respuesta #9 en: Lunes 24 de Julio de 2006, 16:12 »
0
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
Inside the code

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Abrir Programa Externo Desde Boton
« Respuesta #10 en: Lunes 24 de Julio de 2006, 17:26 »
0
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???
La vida es dura
             SPYFLY