Page 1 of 1

Asociar Extencion de Archivos a mi Aplicación

Posted: Tue Nov 13, 2007 11:31 pm
by cuatecatl82
Saludos:

De nuevo aqui con mis marcianadas :twisted: y preguntas extrañas :evil: para todo el foro:

Es posible asociar una extencion de un archivo (p.e. *.VIC) con mi aplicación y a la vez colocar un ícono para distinguirlo, pongo como ejemplo una utilidad muy conocida por todos nosotros y que es para visualizar archivos .DBF (me refiero a Prometehus DATABASE WORKSHOP de Andrade A. Daniel). lo necesito para mi aplicación ya que pretendo asociar archivos de ayuda en la misma. :D

Esperando propuestas y soluciones:

Soluciones y Diseño de Software Empresarial
I.S.C Víctor Daniel Cuatécatl León
www.sisa.unlugar.com

Posted: Sat Dec 01, 2007 3:51 pm
by cuatecatl82
Saludos al todo el distiguido foro:

Ok. haciendo pruebas e investigando un poco sobre claves del registro de windows he llegado a la conclusion de que si se puede hacer esta "trampita" que permite disfrazar cualquier extenciòn de archivo a y asociarla a nuestra aplicación.

¡¡ CUIDADO !! Es pa toda la gente que le gusta ser cremosa y que gustan que sus aplicaciones se vean a veces medias cursis, pero es a fin y al cabo una aportaciòn màs.

por ejemplo: si queremos que nuestros archivos .DBF tengan un ìcono y asosiarlo a nuetra aplicaiòn yo lo hago de la siguiente forma:

Registra(".DBF","baseddatos.aplicacion","Mi tabla de trabajo",14)

y esta el la funciòn que se encarga de este truco:


#Include "FIVEWIN.CH"

#ifndef __XPP__
#define HKEY_CLASSES_ROOT 2147483648
#define HKEY_CURRENT_USER 2147483649
#define HKEY_LOCAL_MACHINE 2147483650
#define HKEY_USERS 2147483651
#define HKEY_PERFORMANCE_DATA 2147483652
#define HKEY_CURRENT_CONFIG 2147483653
#define HKEY_DYN_DATA 2147483654
#else
#define HKEY_CLASSES_ROOT 1
#define HKEY_CURRENT_USER 2
#define HKEY_LOCAL_MACHINE 3
#define HKEY_USERS 4
#define HKEY_PERFORMANCE_DATA 5
#define HKEY_CURRENT_CONFIG 6
#define HKEY_DYN_DATA 7
#endif

//-------------------------------//
FUNCTION Registra(cExten,cCadena,cTipo,nIcono)

LOCAL oReg
LOCAL cAplicacion:= UPPER(ALLTRIM(GetModuleFileName(GetInstance()))+","+ALLTRIM(STR(nIcono)))


oReg:= TReg32():CREATE( HKEY_CLASSES_ROOT, cExten )
oReg:SET( "", cCadena )
oReg:CLOSE()

oReg:= TReg32():CREATE( HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\"+cExten )
oReg:= TReg32():CREATE( HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\"+cExten+"\OpenWithList" )
oReg:= TReg32():CREATE( HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\"+cExten+"\OpenWithProgids" )
oReg:CLOSE()

oReg:= TReg32():CREATE( HKEY_LOCAL_MACHINE, "Software\Classes\"+cExten )
oReg:SET( "", cCadena )
oReg:CLOSE()

oReg:= TReg32():CREATE( HKEY_CLASSES_ROOT, cCadena )
oReg:SET( "", cTipo )
oReg:CLOSE()
oReg:= TReg32():CREATE( HKEY_CLASSES_ROOT, cCadena+"\DefaultIcon" )
oReg:SET( "", cAplicacion )
oReg:CLOSE()

oReg:= TReg32():CREATE( HKEY_LOCAL_MACHINE, "SOFTWARE\Classes\"+cCadena )
oReg:SET( "", cTipo )
oReg:CLOSE()
oReg:= TReg32():CREATE( HKEY_LOCAL_MACHINE, "SOFTWARE\Classes\"+cCadena+"\DefaultIcon" )
oReg:SET( "", cAplicacion )
oReg:CLOSE()


RETURN nil

Donde:

cExten: Es la estención a Asociar. esta debe ser antrecedida por punto (.)
cCadena: es la cadena de caracteres donde se crea la clave en el registro.
cTipo: Aky podemos poner una leyenda para verla en el explorador.
nIcono: Este es el nùmero de icono para identificarlo, comienza desde 0 ya que es el primer icono con el que comienza nuetra aplicaciòn.


Esta es la soluciòn que tengo implantada en mi aplicaciòn y le da màs vistosidad a los archivos, es 100% funcional, y no interfiere con otros archivos asociados a otras aplicaciones...

estoy trabajando para que al hacer doble click el archivo sea abierto por nuetra aplicaciòn, esto serà proximamente..


Saludos y nos escribimos luego..

I.S.C. Vìctor Daniel Cuatècatl Leòn. :roll:

Posted: Sat Dec 01, 2007 5:36 pm
by Antonio Linares
Victor,

Gracias! :-)

Re: Asociar Extencion de Archivos a mi Aplicación

Posted: Sat Oct 16, 2010 10:49 pm
by cuatecatl82
Hola de nuevo al Foro:

A solicitud de un Colega Peruano, que me Solicito Via MP la contibuación de éste Post de hace ya unos años, re-abro y continuo este post, ojala le sea de utilidad... :P :) :)

Si bien ya era posible dentro de mi Sistema asociar un archivo ".123" a una "X" Aplicación para tomar el icono numero "N" y tener un mejoramiento visual a los archivos "disfrazados" de nuestra aplicación, me di a la tarea de hacer que estos archivos fueran tambien abiertos fuera del Sistema con tan solo dar doble click.

Para no ser tan extenso todo este cuento les dejo los fuentes y los ejecutables de 2 aplicaciones

1.- REGISTRAR.PRG (.EXE) : Se encarga de Registrar nuestro archivo con extención ".123" a
Nuestra Aplicación "X", por falta de tiempo me falto explorar el
ejecutable a Asociar, vizualizar los iconos y devolver el numero
de icono seleccionado ( Lo que esta en el Dibujo06 )

Image

Para entender mejor como funciona este ejemplo adjunto el código fuente, solo hay que jugar
y entender la lógica del Registro de Windows con respecto a las Aplicaciones tanto para
apertura y asosiación, como solo para asosiación de archivos.


2.- BROWSER.PRG (.EXE) : Es un simple Visualizador de Bases de Datos, solo eso, no permite
Edición ni nada, solo es un ejemplo de como es posible abrir un
archivo asosiado a una aplicación, ya sea abriendola desde el mismo
Editor, arrastrando y soltando dentro del Editor, o con doble Click.

La único que incorpore en este editor fue la posibilidad de poder revisar si el archivo que
se pretende abrir es una DBF o no, para mayor control y no modificar archivos con lo que no es.

http://www.megaupload.com/?d=PDUF9L9G

Espero y les sirva, solo me falta la opción de vizualizar los iconos de un .EXE, y en base al icono que se haya seleccionado guardarlo en el registro, por defecto toma el icono del exe para la Asosiación.

Image

Si alguien más puede aportar a este modulo se lo agradeceré, de todas maneras seguire investigando como hacerlo...

Estimado Juan _, espero sea de ayuda... :P :P :o :lol:

Saludos..

Re: Asociar Extencion de Archivos a mi Aplicación

Posted: Tue Oct 19, 2010 6:58 pm
by juancarlos
Estimado Victor, anoche lo bajé y era justo lo que necesitaba, mil gracias :D

Re: Asociar Extencion de Archivos a mi Aplicación

Posted: Wed Oct 20, 2010 6:26 pm
by leandro
Amigo Excelente aporte... Muchas Gracias

Re: Asociar Extencion de Archivos a mi Aplicación

Posted: Tue Nov 02, 2010 6:02 pm
by cuatecatl82
Despues de unos dias de investigación de como dibujar los iconos con el Api de Windows y haciendo conversiones con VB6 y los controles de Fivewin que era lo que faltaba, porfin queda termnada esta utilidad, con su corespondiente actualización, ahora se ve así y se puede seleccionar el icono a Asociar.

Image

Para los que lo hayan bajado y quieran actualizarlo les doy el enlace..
http://www.megaupload.com/?d=2WM43LYI

Esperando que a alguien más le pueda servir.. :wink: :P

Saludos...

Re: Asociar Extencion de Archivos a mi Aplicación

Posted: Sat May 07, 2016 3:34 pm
by cuatecatl82
Para quien lo necesite el Link Actualizado..

http://www.mediafire.com/download/c8lft ... sociar.rar

Saludos.

Re: Asociar Extencion de Archivos a mi Aplicación

Posted: Sat May 07, 2016 7:26 pm
by cnavarro
Victor, gracias