• Sábado 14 de Diciembre de 2024, 12:05

Autor Tema:  ¿Cúal es el codigo para abrir un archivo, .exe?  (Leído 6534 veces)

Burns

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
¿Cúal es el codigo para abrir un archivo, .exe?
« en: Jueves 6 de Enero de 2011, 15:25 »
0
Buenas. Quisiera saber cual es el codigo para abrir un archivo .exe desde un windows form mediante un boton, osea que cuando le des click al boton se abra un archivo definido.

Ahora bien por si no se ha entendido mucho, en este momente ya cree un windows form que funciona como un Launcher, donde apareceran noticias,etc,en mi caso es de un juego, y lo que quiero es que cuando el usuario de de click a un boton"Start" abra el cliente que es un .exe. En este caso uso el M.Visual c++ 2010.

PD: Si es posible podrian poner el codigo para que se cierre mediante el boton Boton2"exit".

Si lo pueden poner cualquiera de los dos ("aunque le doy prioridad al de abirir el .exe") se lo agradeceria mucho!

/*Edit*/
No se preocupen con eso de los botones y/o windows form,por si se confundieron,practicamente todo está hecho,solo me falta el enunciado Visual C++; que sirve para abrir un archivo .exe"en mi caso".

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: ¿Cúal es el codigo para abrir un archivo, .exe?
« Respuesta #1 en: Viernes 7 de Enero de 2011, 10:24 »
0
Código: C
  1. system("ruta_programa");
  2.  
Y eso se llama ejecutar, no abrir, y el fichero un ejecutable.

Saludos

pedro00pedro

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: ¿Cúal es el codigo para abrir un archivo, .exe?
« Respuesta #2 en: Jueves 13 de Enero de 2011, 21:24 »
0
No te recomiendo lo que dicec m0skit0, esta bien y funciona, pero muestra la fea ventana de cmd, usa mejor:
Código: C++
  1. Process::Start("archivo.exe");
  2.  
Esto abrirá el proceso de forma limpia.
Yo lo he usado en varios proyectos, y tengo estas librerias incluidas, que creo que hacen falta.
Código: C++
  1. #include <shellapi.h>
  2. #using <System.dll>
  3.  
De todas formas busca en Google mas información sobre Process::Start para saber que necesitas exactamente y que argumentos puedes pasarle.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: ¿Cúal es el codigo para abrir un archivo, .exe?
« Respuesta #3 en: Viernes 14 de Enero de 2011, 09:25 »
0
Mi forma es estándar, la que propones tú no lo es.

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: ¿Cúal es el codigo para abrir un archivo, .exe?
« Respuesta #4 en: Sábado 22 de Enero de 2011, 19:58 »
0
Cita de: "m0skit0"
Mi forma es estándar, la que propones tú no lo es.

Y tu forma abrirá una consola, incializará el sistema de consola, lanzará la aplicación, cerrará el sistema de consola, perdiendo la relación padre/hijo que se puede tener con la forma descrita, con lo que todos los handles heredados y demás se perderán.
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: ¿Cúal es el codigo para abrir un archivo, .exe?
« Respuesta #5 en: Domingo 23 de Enero de 2011, 14:51 »
0
Eso que dices es en Windows. En Linux no abres ninguna consola. De todas formas, si lo que quieres es mantener una relación con el nuevo proceso abierto, personalmente me centraría en el estándar POSIX y sus llamadas al sistema (fork, execve, etc...), y no en un estándar cerrado de una única empresa que sólo funciona en un único SO.

Saludos.

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: ¿Cúal es el codigo para abrir un archivo, .exe?
« Respuesta #6 en: Domingo 23 de Enero de 2011, 15:52 »
0
Claro, te mantienes en un estándar abierto pero usas cuadros de diálgo de windows, o peor aún, C++/CLI como está usando Burns... Con lo que usar el estándar POSIX tiene toda la razón del mundo.

Si en un programa .NET (no sólo C++/CLI) usas algo nativo, como las funciones del runtime de C que propones, eso significa varios cambios de contexto entre la máquina virtual .NET y el código nativo, en contra de usar la propia biblioteca de .NET, que hará el cambio de contexto cuando sea necesario...

Vamos, que haciendo un programa en C++/CLI tiene mucho sentido respetar los estándares...
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog