PDA

Ver la Versión Completa : Abrir una aplicación desde sus archivo generados


elcigarra
18-10-2017, 01:57:56
Amigos, tengo una aplicación que genera documentos de salida con información (que se guardan con una extensión propia). Estos archivos pueden abrirse desde la aplicación con un opendialog común y corriente, pero que al cargarse realiza varios procesos específicos cargando distintas variables y stringgrids con la información que tiene el archivo.
La pregunta es como puedo hacer para abrir la aplicación desde este archivo (teniendo ya windows asignada esta extension). Es decir, yo hago doble click sobre el archivo y se abre la aplicación pero obviamente no hace nada con el archivo.

dec
18-10-2017, 08:45:59
Hola,

Cuando tienes asociada una extensión a tu programa, en efecto, al hacer doble clic, por ejemplo, en el archivo con la extensión asociada, se abrirá tu programa. Siempre que esto ocurra tu programa recibirá como argumento la ruta del archivo en cuestión, y, a partir de ahí, es cuestión tuya qué hacer con dicha ruta: leer el archivo, procesar su contenido, etc. Puedes echar un vistazo a la función ParamStr (http://www.delphibasics.co.uk/RTL.asp?Name=paramstr), entre otras.

roman
18-10-2017, 17:52:39
Cuando tienes asociada una extensión a tu programa, en efecto, al hacer doble clic, por ejemplo, en el archivo con la extensión asociada, se abrirá tu programa. Siempre que esto ocurra tu programa recibirá como argumento la ruta del archivo en cuestión, y, a partir de ahí, es cuestión tuya qué hacer con dicha ruta: leer el archivo, procesar su contenido, etc. Puedes echar un vistazo a la función ParamStr (http://www.delphibasics.co.uk/RTL.asp?Name=paramstr), entre otras.

Hace mucho tiempo que no programo para Windows, pero creo recordar que, además de lo que comentas, hay que considerar el caso en que se haga doble clic sobre un grupo de archivos, porque creo que el comportamiento por defecto es abrir tantas instancias de tu aplicación como archivos haya en el grupo, de manera que la propia aplicación debe estar preparada para manejar una sóla instancia.

LineComment Saludos

dec
19-10-2017, 10:32:58
Hola a todos,

Hace mucho tiempo que no programo para Windows, pero creo recordar que, además de lo que comentas, hay que considerar el caso en que se haga doble clic sobre un grupo de archivos, porque creo que el comportamiento por defecto es abrir tantas instancias de tu aplicación como archivos haya en el grupo, de manera que la propia aplicación debe estar preparada para manejar una sóla instancia.

LineComment Saludos

¡Siempre sorprendiendo! Me dejas ahora mismo dubitando, que es gerundio, Román. Iba a haberte contestado anoche desde mi portátil, pero, no tenía lo necesario para hacer alguna prueba. Hoy me dispongo a hacer una prueba con uno de mis programas, total, para descubrir, que, si selecciono varios archivos asociados al mismo, y, simplemente, pulso la tecla "enter" sobre ellos, el comportamiento no es el esperado: que se abran todos los archivos seleccionados.

Tengo que revisar esto en cuanto pueda. :)

roman
19-10-2017, 15:47:29
https://fotos.subefotos.com/b261de1fb61b556b1e39b7b218610542o.gif

;)

LineComment Saludos

Guti13
19-10-2017, 22:11:35
Quizás lo que puedes usar es una aplicación puente, es decir que al recibir el parámetro mire si tu aplicación principal está abierta y en ese caso simplemente le pase el archivo y no abra otra instancia de la aplicación y en caso contrario, que efectivamente la abra.

Mendizabal
30-10-2017, 09:10:20
Quizás lo que puedes usar es una aplicación puente, es decir que al recibir el parámetro mire si tu aplicación principal está abierta y en ese caso simplemente le pase el archivo y no abra otra instancia de la aplicación y en caso contrario, que efectivamente la abra.

No hay necesidad de utilizar ninguna aplicación puente. La propia aplicación principal puede comprobar al lanzarse si hay otra instancia abierta y, en caso afirmativo, hacer lo que sea pertinente.