Desde Visual Studio iniciar ejecutable c#

Iniciado por alkalo, 17 Noviembre 2017, 22:40 PM

0 Miembros y 4 Visitantes están viendo este tema.

alkalo

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!

MCKSys Argentina

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."



alkalo

Cita de: MCKSys Argentina en 17 Noviembre 2017, 23:47 PM
Hola!

Te molestaste en buscar en Google siquiera, antes de preguntar?

El primer resultado de mi búsqueda: https://stackoverflow.com/questions/15948328/c-sharp-execute-another-program-on-button-click

Saludos!

Si he buscado pero usan process y ami ese comando nop me funciona...
Pero gracias!

Eleкtro

#4
Cita de: alkalo en 18 Noviembre 2017, 14:23 PMSi 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 (csharp) [Seleccionar]
Process.Start(@".\programa.exe", "argumentos");
( el parámetro donde especificar los argumentos es opcional, claro está. )

Saludos.








alkalo

Cita de: Eleкtro en 18 Noviembre 2017, 14:48 PM
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 (csharp) [Seleccionar]
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)?

Eleкtro

Cita de: alkalo en 18 Noviembre 2017, 16:31 PM
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.

Saludos.








alkalo

#7
Cita de: Meta en 18 Noviembre 2017, 04:18 AM
[youtube=640,360]https://www.youtube.com/watch?v=4GlCsOZSHgQ[/youtube]

GRACIAS POR EL VIDEO! Me diste una idea y ahora funciona.! GRACIAS A TODOS.

Como puedo hacer para que se ejecute pero en el mismo directorio? Que no tenga que buscar C.....

Eleкtro

Cita de: alkalo en 21 Noviembre 2017, 19:15 PMComo 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 (csharp) [Seleccionar]
p.StartInfo.FileName = @"Program.exe";

O también puedes escribir una ruta relativa tal que así:
Código (csharp) [Seleccionar]
p.StartInfo.FileName = @".\Program.exe";

Saludos.