Asociar Extencion de Archivos a mi Aplicación

Post Reply
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Asociar Extencion de Archivos a mi Aplicación

Post 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
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Post 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:
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Victor,

Gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: Asociar Extencion de Archivos a mi Aplicación

Post 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..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
juancarlos
Posts: 4
Joined: Wed Mar 31, 2010 8:14 pm
Location: Tacna-Peru

Re: Asociar Extencion de Archivos a mi Aplicación

Post by juancarlos »

Estimado Victor, anoche lo bajé y era justo lo que necesitaba, mil gracias :D
fwh
xharbour
borland C++ Compiler 5.5
PellesC
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Asociar Extencion de Archivos a mi Aplicación

Post by leandro »

Amigo Excelente aporte... Muchas Gracias
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: Asociar Extencion de Archivos a mi Aplicación

Post 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...
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: Asociar Extencion de Archivos a mi Aplicación

Post by cuatecatl82 »

Para quien lo necesite el Link Actualizado..

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

Saludos.
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Asociar Extencion de Archivos a mi Aplicación

Post by cnavarro »

Victor, gracias
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Post Reply