Asociar Extencion de Archivos a mi Aplicación

Asociar Extencion de Archivos a mi Aplicación

Postby cuatecatl82 » Tue Nov 13, 2007 11:31 pm

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: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Postby cuatecatl82 » Sat Dec 01, 2007 3:51 pm

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

Postby Antonio Linares » Sat Dec 01, 2007 5:36 pm

Victor,

Gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41365
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Asociar Extencion de Archivos a mi Aplicación

Postby cuatecatl82 » Sat Oct 16, 2010 10:49 pm

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

Re: Asociar Extencion de Archivos a mi Aplicación

Postby juancarlos » Tue Oct 19, 2010 6:58 pm

Estimado Victor, anoche lo bajé y era justo lo que necesitaba, mil gracias :D
fwh
xharbour
borland C++ Compiler 5.5
PellesC
juancarlos
 
Posts: 4
Joined: Wed Mar 31, 2010 8:14 pm
Location: Tacna-Peru

Re: Asociar Extencion de Archivos a mi Aplicación

Postby leandro » Wed Oct 20, 2010 6:26 pm

Amigo Excelente aporte... Muchas Gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1484
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Asociar Extencion de Archivos a mi Aplicación

Postby cuatecatl82 » Tue Nov 02, 2010 6:02 pm

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: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: Asociar Extencion de Archivos a mi Aplicación

Postby cuatecatl82 » Sat May 07, 2016 3:34 pm

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

Re: Asociar Extencion de Archivos a mi Aplicación

Postby cnavarro » Sat May 07, 2016 7:26 pm

Victor, gracias
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 24 guests