Saludos:
De nuevo aqui con mis marcianadas y preguntas extrañas 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.
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
Asociar Extencion de Archivos a mi Aplicación
- cuatecatl82
- Posts: 614
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
- cuatecatl82
- Posts: 614
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
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.
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.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- 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
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...
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 )
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.
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...
Saludos..
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...
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 )
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.
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...
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
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
-
- Posts: 4
- Joined: Wed Mar 31, 2010 8:14 pm
- Location: Tacna-Peru
Re: Asociar Extencion de Archivos a mi Aplicación
Estimado Victor, anoche lo bajé y era justo lo que necesitaba, mil gracias
fwh
xharbour
borland C++ Compiler 5.5
PellesC
xharbour
borland C++ Compiler 5.5
PellesC
Re: Asociar Extencion de Archivos a mi Aplicación
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 ]
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
- 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
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.
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..
Saludos...
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..
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
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
- 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
Para quien lo necesite el Link Actualizado..
http://www.mediafire.com/download/c8lft ... sociar.rar
Saludos.
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
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
Re: Asociar Extencion de Archivos a mi Aplicación
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.
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.