La manera más fácil es añadiendo el using namespace System::Diagnostics;
y luego usar Process::Start("nombredelprograma.exe");
también se puede poner la ruta absoluta pero con dobles \\ e incluso añadir qué archivo abrir.
Process::Start("notepad.exe","miarchivo.txt");
Otras maneras
En C la forma clásica (también compatible en C++) es emplear el comando system, pero para Windows también existe otro comando llamado ShellExecute.
system | Permite ejecutar cualquier instrucción que sea interpretada por una línea de comandos. |
ShellExecute | Permite abrir archivos, carpetas y ejecutar programas en Windows. |
A continuación veremos cómo utilizar cada uno de ellos.
Se recomienda incluir los includes:
#include <process.h>
#include <Windows.h>
Empleando system
El comando system se encuentra en la librería estándar stdlib.h por lo que funciona (como dijimos al comienzo) en cualquier sistema operativo que sea capaz de compilar C/C++.
Este comando recibe como único parámetro una cadena de caracteres que indica la instrucción que se desea introducir en en el intérprete de comandos (Terminal, cmd, etc).
Debe tenerse en cuenta que el argumento (parámetro) que es enviado en la función es exactamente el que recibirá el intérprete del Sistema Operativo que se esté utilizando, por lo que si ese comando no existe, simplemente no funcionará.
A continuación voy a dejar una tabla que tomé prestada de copstone, que me parece muy bien resumida:
S.O. | Comando | Descripción |
Windows |
| Abre el programa Notepad.Esto solo funciona porque notepad.exe se encuentra dentro del PATH de Windows. |
Linux |
| Abre el programa gedit. |
Windows |
1 | system ( "C:\\ Binarios \\tablas.exe" ); |
| Abre el programa tablas.exe ubicado en la ruta C:\\Copstone. |
Linux |
1 | system ( "/home/ Binarios /tablas" ); |
| Abre el programa tablas ubicado en la ruta /home/copstone |
Windows |
1 | system ( "notepad.exe C:\\prueba.txt" ); |
| Abre el programa Notepad y carga el archivo prueba.txt ubicado en el disco C |
Windows |
1 | system ( "C:\\prueba.txt" ); |
| Muy parecido al programa anterior pero deja que el sistema operativo decida con que programa abrir el documento de texto. |
Este comando posee una clara desventaja (o característica a tener en cuenta): Toda la aplicación quedará esperando hasta que se haya finalizado la ejecución del system.
Ejemplo:
5 |
printf ( "Se esta por abrir notepad\n" ); |
7 |
printf ( "Se termino de ejecutar notepad\n" ); |