Buenas Comunidad, alguien me ayuda con esto? La cosa es desde visual studio en c#, desde un form iniciar un ejecutable, Por ejemplo, le das a un botón y te abre skype... GRACIAS!
Si he buscado pero usan process y ami ese comando nop me funciona...
La clase System.Diagnostics.Process es la forma correcta y sofisticada para iniciar y controlar un proceso en .NET, y funcionar te debe funcionar, no es algo que le funcione a unos y a otros no... lo que ocurre es que no lo sabrás utilizar correctamente, algo incorrecto debes estar haciendo en el código, y lo mejor sería que nos mostrases tal código para decirte donde está el fallo...
De todas formas, si todos esos ejemplos de StackOverflow te parecen algo dificil, se pueden simplificar en una sentencia single-line más simple para evitarte mayores complicaciones:
Código
Process.Start(@".\programa.exe", "argumentos");
( el parámetro donde especificar los argumentos es opcional, claro está. )
Saludos.
« Última modificación: 18 Noviembre 2017, 14:54 pm por Eleкtro »
La clase System.Diagnostics.Process es la forma correcta y sofisticada para iniciar y controlar un proceso en .NET, y funcionar te debe funcionar, no es algo que le funcione a unos y a otros no... lo que ocurre es que no lo sabrás utilizar correctamente, algo incorrecto debes estar haciendo en el código, y lo mejor sería que nos mostrases tal código para decirte donde está el fallo...
De todas formas, si todos esos ejemplos de StackOverflow te parecen algo dificil, se pueden simplificar en una sentencia single-line más simple para evitarte mayores complicaciones:
Código
Process.Start(@".\programa.exe", "argumentos");
( el parámetro donde especificar los argumentos es opcional, claro está. )
Saludos.
a parte de poner: Process.Start(@".\programa.exe", "argumentos"); tengo que iniciar process?(new)?
a parte de poner: Process.Start(@".\programa.exe", "argumentos"); tengo que iniciar process?(new)?
...¿Por que no pruebas el código que te he puesto y así sales de dudas por ti mismo?.
Solo te puse una sola linea, no añadí ninguna instrucción más... por que no es necesario hacer más. La otra forma de utilizar la clase Process resérvala para cuando quieras obtener control sobre la forma en la que se ejecuta (ej. ventana visible, u oculta), capturar los búfers de entrada o de salida del proceso (std-in, std-err o std-out), o suscribirte a los eventos de inicio y de salida del proceso que expone la clase Process.
Como puedo hacer para que se ejecute pero en el mismo directorio? Que no tenga que buscar C.....
Sencillamente coloca el executable en el directorio de compilación de tu programa (es decir, "al lado" de tu executable compilado). Por defecto se usará ese directorio como directorio de trabajo... de todas formas puedes especificar el directorio de trabajo:
O simplemente puedes escribir el nombre del executable en la propiedad StartInfo.FileName, solo el nombre del executable, la ruta absoluta se resolverá por si sola...
Código
p.StartInfo.FileName=@"Program.exe";
O también puedes escribir una ruta relativa tal que así: