Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Abrir archivo propio desde Windows....en programa propio (https://www.clubdelphi.com/foros/showthread.php?t=40482)

darkphantom 18-02-2007 06:41:49

Abrir archivo propio desde Windows....en programa propio
 
pues tengo un archivo de datos que yo he creado para un programa hecho por mi, y lo quiero abrir desde el explorer de windwos..... es decir komo los archivos .DOC ke se abren en WORD, y ke puedes abrir WORD y abrir el archivo desde ahi. :confused:

Pues ok.... lo 2do si lo hago, eso es facil, pero no tengo idea de komo enviar o recuperar el nombre del archivo desde windwos..... o komo podria hacer para hacer eso???

Mi programa revisa si existe un TEMPORAL ke uso desde otro y si no lo encuentra abre un OPENDIALOG, pero de eso a ke lo abra de windwos no tengo idea.....

es decir tengo 2 programas uno para krear los archivos ".dato" y otro para abrirlos.... y en el show del 2do programa hago :

Código Delphi [-]
if fileexist(temporal.dato) then openfile(temporal.dato)
 else
   begin
     opendialog.execute
     openfile(opendialog.filename).
   end;

pero no se y no tengo la mas remota idea de komo hacer para abrirlo desde windows, ya ke lo ejecuto y lo asocio, pero abre el OPENDIALOG en lugar de ejecutar el archivo o la instruccion openfile...

Delphius 18-02-2007 07:27:36

A decir verdad mucho no te entendí: ¿Quieres asignar a un tipo de archivo, creado por vos y con una extensión determinada, un ejecutable de modo que al hacer doble click sobre dicho archivo se ejecute tu programa y muestre el contenido de dichoso archivo?

Si es eso.. poco puedo ayudarte pues no estoy muy metido en el tema. Pero creo que la cosa pasa por esto:

1. Primero debes "registrar" la extensión con tu ejecutable. De esto no me acuerdo como era... vi un truco en trucomania
2. Ahora... Una vez que se registra la extensión debes emplear las funciones de las commandlines utilities. Para ser exacto:

* ParamCount: que devuelve la cantidad de parámetros pasados a la aplicación.
* ParamStr: que devuelve el valor del parámetro.

¿Porqué te digo esto de los parámetros? Pues... a una aplicación se le pueden suministrar parámetros y dependiendo de ellos... realizar alguna operación. En este caso, abrir el archivo. Y efectivamente (tengo entendido), cuando se le aplica un doble-click a un archivo, se le está pasando un parámetro.

Como te dije... mucho de esto no entiendo, pero si buscas en los foros por ParamCount y ParamStr vas a encontrar info de mayor utilidad.
Igualmente se que este tema se ha tratado en los foros... realiza una búsqueda, estuve buscando algun hilo del tema... pero no lo encuentro. Se que está:confused:.

Espero haberte ofrecido un poco de ayuda como para que comiences... sino me entiendes disculpa... hasta alli llegan mis conocimientos sobre esto.

Saludos,

EDITO:
Pues, amigo, la solución estaba a nuestros pies... en la seeción temas similares!:p Se me había olvidado buscar alli primero.
Mirate el primer y ultimo enlace:
Primer enlace
Ultimo enlace

Ahora si... saludos y espero que te sirva!:cool:

darkphantom 18-02-2007 08:04:28

pues gracias, lo voy a probar, es ke la verdad no tenia ni idea de komo buscarlo en el foro....jejeje algo confusa mi explicacion tambien y lo siento, pero gracias por los enlaces :)

Lepe 18-02-2007 11:34:19

No te vayas muy lejos a buscar, aquí en la sección trucos tienes como hacerlo

Eso sirve para que al pulsar en el explorador, se le mande el archivo a tu programa.

Ahora, como ha dicho Delphius, tienes que detectar si hay parámetros de entrada (que es el "%1" que aparece en la rutina) y abrirlo sin mostrar el openDialog.

Saludos

darkphantom 18-02-2007 19:20:35

pues ya intente hacerlo kon el paramcount y el otro, pero no me sale, trate de revisarlo asi :

Código Delphi [-]
if filexist(temporal.dato) then abrearchivo(temporal.dato)
 else if paramcount>=1 then abrearchivo(paramstr(1)); 
  else opendialog.execute;

pero no funciona..... alguien sabe komo hacerlo????

Lepe 18-02-2007 21:44:25

En principio es así, haz un ShowMessage del param1 para ver su contenido y averiguar por qué falla

saludos

darkphantom 18-02-2007 22:44:35

ya eso ya lo hice, pero no encuentro el error..... de hecho el param1 dice "C:\documents"...... porke lo tengo en ESCRITORIO..... asi ke seria

param1: c:\documents
param2: and
param3: settings\usuario\escritorio\archivo.dato

asi es como me sale..... en serio.
y ya buske komo adaptarlo, pegarlo, usarlo, pero nada....

seoane 18-02-2007 22:58:07

Revisa este otro hilo

http://www.clubdelphi.com/foros/show...28&postcount=2

darkphantom 20-02-2007 07:04:05

Ya pude resolverlo, muchas gracias, pero no pude hacer eso de ke sea 1 solo parametro, pero lo ke hice fue pegar los parametros y si me funciono bien, :)
gracias a todos .....

Lepe 20-02-2007 11:49:17

Para que sea un parámetro solo, debes encerrarlo entre comillas dobles, la que está encima del número 2 en el teclado. Digo esto ya que, quizás, no se aprecia correctamente si son dos comillas simples pegadas o una comilla doble: "%1" no es lo mismo que ''%1'', debe ser la primera forma.

Saludos

darkphantom 21-02-2007 05:09:43

si si, ya lo se, ya lo hice, pero no se porke no keria funcionar, asi ke lo deje asi komo les digo y no me da problemas :) si surge alguno les aviso.

Lepe 21-02-2007 11:02:11

También sabrás que si modificas el registro... quizás tengas que reiniciar... no sé exactamente si es así para este caso concreto...

Saludos

darkphantom 22-02-2007 04:46:49

pues segun hice yo, no me hizo falta reiniciar..... pero talvez si se deba, tratare de verlo en el installer.... :D


La franja horaria es GMT +2. Ahora son las 00:13:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi