Últimos temas | » Sockets Conexion,Envio y recepcion de datos (mini-chat Cliente-Servidor)Sáb Sep 30, 2023 6:24 pm por EurekaMartin » Graficos: Grafica circularMar Mar 05, 2019 4:58 pm por Luis Garcia» Calendario hecho ManualmenteMar Mar 05, 2019 3:52 pm por Luis Garcia» Activar el protector de pantalla.Mar Mar 05, 2019 3:12 pm por Luis Garcia» Hacer backup de MySql desde C# Mar Abr 18, 2017 10:04 pm por maurifl » Sockets programa para Ciber Cafe (Cliente-Servidor)Lun Ago 10, 2015 5:45 pm por artes » Ayuda crear emoticones en un chatDom Jul 12, 2015 9:00 pm por yeco96 » Necesito ayuda para pasar datos a un DatagridviewDom Jun 07, 2015 4:33 pm por rafaelfa » Reproductor de música->Lista de reproducción (Guardar-Cargar)Lun Jun 01, 2015 3:00 pm por kevin22 |
|
| Recibir parámetros y enviar parámetros a un ejecutable. | |
| | Autor | Mensaje |
---|
Guillermo Javier Salazar STAFF TEAM
Mensajes : 181 Puntos : 349 Localización : México Comentarios : El azar favorece a una mente preparada.
| Tema: Recibir parámetros y enviar parámetros a un ejecutable. Sáb Mayo 07, 2011 10:56 pm | |
| Recibir parámetros y enviar parámetros a un ejecutable.
Dentro de nuestro proyecto tenemos una clase que se llama "Program.cs", esta clase se encarga de la ejecución de nuestro programa, dentro de el podemos encontrar lo siguiente:
-------------------------------------------------- static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } --------------------------------------------------
"Application.Run(new Form1());" Aquí se indica el formulario o clase que se cargara como clase principal, "static void Main()" Aquí es donde modificaremos para recibir parámetros, por ahora esta vació pero lo modificaremos para que quede de la siguiente manera y reciba parámetros:
-------------------------------------------------- static class Program { [STAThread] static void Main(string [] parametros) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } --------------------------------------------------
Ahora nuestro programa ya recibe parámetros, recibe un vector de string, por que un vector?, esto es para que pueda recibir mas de un parámetro, los parámetros se dividen por cada espacio en blanco, esto significa que si yo le envió a un ejecutable la oracion; "C Sharp Programadores Mexico", llegaran al vector "parametros" en 4 bloques, esto contendra nuestro vector "parametros":
parametros[0] = "C" parametros[1] = "Sharp" parametros[2] = "Programadores" parametros[3] = "Mexico"
Para volver a juntar la oracion solo bastaria un for que recorra la longitud del vector y en cada vuelta guardarla en una variable y aumentarle el espacio en blanco.
Ahora para enviar parámetros a un ejecutable es igual que mandar a llamar a un ejecutable, solo que utilizaremos la clase ProcessStartInfo para indicarle algunas propiedades extras, no olviden cargar:
using System.Diagnostics;
El código para llamar al ejecutable y mandarle parámetros:
----------------------------------------------------------------- ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = DireccionEjecutable; startInfo.Arguments = "C Sharp Programadores Mexico"; Process p = Process.Start(startInfo); -----------------------------------------------------------------
Donde en la propiedad ".Arguments" va lo que deseamos enviar como parámetro. Saludos!! | |
| | | Cdflik Programador Intermedio
Mensajes : 26 Puntos : 46
| Tema: Re: Recibir parámetros y enviar parámetros a un ejecutable. Lun Mayo 09, 2011 1:29 pm | |
| Buenas tengo una pequeña pregunta sobre este tema y me gustaria saber si podrias ayudarme a sacarme unas dudas:
Tengo una aplicacion Windows Mobile en Donde se capturan por teclado 2 valores de tipo String y a su vez al ejecutarse se inician 2 timers la cosa es que esta aplicacion debe estar corriendo siempre y cuando uno no presione el Boton Salir de Aplicacion y si se quiere cerrar por otro medio ya sea por el Administrador de Tareas te levante una Aplicacion llamada Launcher que su unica funcion es Volver a levantar el proceso y Cerrarse lo que necesito es que se pueda identificar si el proceso se levanto desde el launcher saber que trae ciertos valores y reestablecer la aplicacion con los valores de los Timers el Dataset y los valores de los campos de texto que se habian ingresado, espero hayas entendido lo que necesito es evitar a toda costa que se cierre la aplicacion sino se a presionado el Boton. | |
| | | Guillermo Javier Salazar STAFF TEAM
Mensajes : 181 Puntos : 349 Localización : México Comentarios : El azar favorece a una mente preparada.
| Tema: Re: Recibir parámetros y enviar parámetros a un ejecutable. Lun Mayo 09, 2011 10:20 pm | |
| Saludos Cdflik, pues de windows mobile no se casi nada, pero te hablare como si fuera de winform igual y te da una idea, existe eventos que se desencadenan cuando se cierra el formulario, cuando dicho evento se ejecute podrias mandar a llamar al mismo ejecutable y mandarle los datos que ya tienes en el, el ejecutable recibe los datos y los acomoda en su lugar y asi "evitaras" que el formulario se cierre, ya que cada vez que se intente cerrar se volverá a ejecutar automáticamente. | |
| | | Cdflik Programador Intermedio
Mensajes : 26 Puntos : 46
| Tema: Re: Recibir parámetros y enviar parámetros a un ejecutable. Lun Mayo 09, 2011 11:13 pm | |
| Pues en teoria suena muy bien pero en la practica esto no ocurre ya que Windows Mobile Valida que 2 aplicaciones iguales no se ejecuten al mismo tiempo es automatico y uno no tiene que hacer esa validacion eso es bueno en cierto modo pero para mi ejemplo esto no funciona, el evento Closing de la forma es el evento que se desencadena cuando se esta cerrando el Form y si dentro de ese evento quiero llamar a la misma forma o aplicacion existen 2 formas una usando el System.Diagnostics.Process para Iniciar un proceso enviandole el Path del Ejecutable pero en este caso esto no ocurre ya que primero debe cerrarse la forma para poder ejecutarse y pues en teoria y en practica no se puede primero cerrar y despues ejecutar una accion ya estando la aplicacion cerrada, la otra es usando Application.Run(this) para referirse a la aplicacion este caso es mas especial ya que alcanza a levantar el proceso aunque cierres la aplicacion y la levanta con sus estados y todo tal y como era pero solo por unos segundos y despues el Administrador de tareas lo aniquila, un truco que hise fue el crear un ejecutable que su unica funcion sea llamar a mi aplicacion y cerrarse asi cuando matamos al proceso se llama a la Aplicacion vacia que a su vez vuelve a abrir la aplicacion y se cierra asi ni el administrador de tareas puede matar el proceso, el problema es que no se como enviarle todos los parametros que necesita el programa para volverse a levantar tal y como estava y a su vez necesito manejar que el programa se esta reiniciando para activarlo y dejarlo como estava antes de su cierre pero esto es complicado por la forma en como se ejecuta el programa no se si puedan darme alguna idea, en Windows Mobile no cambia mucho los eventos respecto a Windows Form y una simulacion de esto podria funcionar solo para hacer pruebas la otra forma mas facil seria evitar que el Administrador de Tareas pueda cerrar la aplicacion aunque esto es casi imposible por no decir imposible ya que en teoria el administrador de tareas debe tener la posibilidad de desactivar cualquier aplicacion si es la 2da forma mejor si es la primera espero ver si me pueden ayudar tratare de crear una aplicacion Winform simulando lo que hace la aplicacion movil para explicar los parametros que enviar etc... | |
| | | Guillermo Javier Salazar STAFF TEAM
Mensajes : 181 Puntos : 349 Localización : México Comentarios : El azar favorece a una mente preparada.
| Tema: Re: Recibir parámetros y enviar parámetros a un ejecutable. Lun Mayo 09, 2011 11:36 pm | |
| Pues así como lo haces esta bien, tener otra aplicación que vuelva a iniciar la aplicación principal, lo que tienes que hacer es lo siguiente, lo manejaremos de esta forma:
Formulario1 es el formulario principal Formulario2 es el proceso para reiniciar el formulario1
Cuando el formulario1 se cierra (controlado por el evento "closing") ejecutas el formulario2 y le envías de parámetros los datos que tiene el formulario1, recuerda que solo puedes enviar una cadena de caracteres, entonces para poder enviar varios utiliza un comodin, ejemplo: "Dato1:valor1$Dato2:valor2$Dato3:Valor3", ahora tienes el formulario1 cerrado y el formulario2 abierto con todos los datos, desde el formulario2 ejecutas el formuario1 y le enviar la cadena de caracteres, cierras el formulario2, en el formulario1 recibes la cadena de caracteres, nadamas la divides usando el método "split()" y los acomodas en su lugar, y si te vuelven a cerrar el formulario1 se repite el proceso, es un ciclo infinito. | |
| | | Contenido patrocinado
| Tema: Re: Recibir parámetros y enviar parámetros a un ejecutable. | |
| |
| | | | Recibir parámetros y enviar parámetros a un ejecutable. | |
|
Temas similares | |
|
| Permisos de este foro: | No puedes responder a temas en este foro.
| |
| |
| |