Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2010
vna vna is offline
Registrado
 
Registrado: mar 2008
Posts: 6
Poder: 0
vna Va por buen camino
Asociar archivo creado por mi aplicacion

Hola a todos estuve viendo otros hilos similares a lo que quiero hacer pero tengo unas dudas, si alguien pudiera aclararlas le agradecia mucho; explico mi situacion.
Bueno, estoy trabajando en un graficador, y tengo un tipo de archivo especifico, ahora quiero asociar el archivo con mi aplicacion para que tenga un icono propio y al hacerle doble click al archivo desde el explorador de windows se pueda abrir.
Mi otro problema, es que como nunca hice algo similar no se como implementarlo ni en donde, quizas es algo muy facil y obvio pero la verdad es que no se. Por eso si pudieran orientarme como y donde les agradeceria mucho, porque los otros hilos que vi muestran como se hace pero por ahi hay algo que no se, que hace que no los entienda muy bien y que no vea con obviedad como implementarlo
Responder Con Cita
  #2  
Antiguo 15-06-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Navegando un poco encontré esto:http://edwinblog.byethost6.com/2009/...elphi/#more-34

Ojalá te sirva.

Nota: Revisalo. ( no lo probé... )

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 15-06-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo en alguna ocasión he itilizado este código (no es mío):

Código Delphi [-]
procedure RegisterFileTypeEx(cMyExt, cMyFileType, cMyDescription, ExeName: string;
                             sIconPath:string; sIconNumber:Integer; DoUpdate: boolean = false);
var
   Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CLASSES_ROOT;
    Reg.OpenKey(cMyExt, True);
    // Write my file type to it.
    // This adds HKEY_CLASSES_ROOT\.abc\(Default) = 'Project1.FileType'
    Reg.WriteString('', cMyFileType);
    Reg.CloseKey;
    // Now create an association for that file type
    Reg.OpenKey(cMyFileType, True);
    // This adds HKEY_CLASSES_ROOT\Project1.FileType\(Default)
    //   = 'Project1 File'
    // This is what you see in the file type description for
    // the a file's properties.
    Reg.WriteString('', cMyDescription);
    Reg.CloseKey;    // Now write the default icon for my file type
    // This adds HKEY_CLASSES_ROOT\Project1.FileType\DefaultIcon
    //  \(Default) = 'Application Dir\Project1.exe,0'
    Reg.OpenKey(cMyFileType + '\DefaultIcon', True);

    if (sIconPath = '') then begin
      Reg.WriteString('', ExeName + ',' + IntToStr(sIconNumber));
    end
    else begin
      Reg.WriteString('', sIconPath);
    end;
    Reg.CloseKey;
    // Now write the open action in explorer
    Reg.OpenKey(cMyFileType + '\Shell\Open', True);
    Reg.WriteString('', '&Open');
    Reg.CloseKey;
    // Write what application to open it with
    // This adds HKEY_CLASSES_ROOT\Project1.FileType\Shell\Open\Command
    //  (Default) = '"Application Dir\Project1.exe" "%1"'
    // Your application must scan the command line parameters
    // to see what file was passed to it.
    Reg.OpenKey(cMyFileType + '\Shell\Open\Command', True);
    Reg.WriteString('', '"' + ExeName + '" "%1"');
    Reg.CloseKey;
    // Finally, we want the Windows Explorer to realize we added
    // our file type by using the SHChangeNotify API.
    if DoUpdate then SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
  finally
    Reg.Free;
  end;
end;

Y la llamada era similar a esta:

Código Delphi [-]
      RegisterFileTypeEx(STR_EXT, STR_DESC_CNN,
                       STR_DESC_CNN,
                       Application.ExeName,
                       IcoName, 2,  // icono
                       True);

Los parámetros eran los siguientes:
* STR_EXT la extensión con la forma '.CNN';
* STR_DESC_CNN es una cadenas descriptiva tipo esta: 'Fichero de conexión'
* IcoName es el path donde está el icono a asociar.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 16-06-2010
vna vna is offline
Registrado
 
Registrado: mar 2008
Posts: 6
Poder: 0
vna Va por buen camino
Gracias! pruebo las dos opciones y les cuento.
lo que mas estaria necesitando es que me expliquen como lo implemento, esto es, en que instancia del programa, en que momento, ahi es mas donde ando perdida.
Responder Con Cita
  #5  
Antiguo 21-06-2010
vna vna is offline
Registrado
 
Registrado: mar 2008
Posts: 6
Poder: 0
vna Va por buen camino
hola
no se si me podrian ayudar, no entiendo que estoy haciendo mal pero en esta linea me salta error
Reg.WriteString('', cMyFileType);
ERegistryException -> failed to set a data for ''
otra duda que tengo en la segunda propuesta no entiendo bien que datos van en las variables cMyFileType y cMyDescription y si me pudieran explicar para que sirve, probe las dos propuestas y otras mas que encontre en el foro, pero veo que algo estoy haciendo mal para que siempre me salga ese error
Desde ya muchas gracias
Responder Con Cita
  #6  
Antiguo 21-06-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por vna Ver Mensaje
hola
no se si me podrian ayudar, no entiendo que estoy haciendo mal pero en esta linea me salta error
Reg.WriteString('', cMyFileType);
ERegistryException -> failed to set a data for ''
A mi me funciona perfectamente en Delphi 6 (XP).
Con qué sistema estás trabajando.

Cita:
Empezado por vna Ver Mensaje
otra duda que tengo en la segunda propuesta no entiendo bien que datos van en las variables cMyFileType y cMyDescription y si me pudieran explicar para que sirve
Esos dos parámetros corresponden con los que te he puesto en la llamada de ejemplo y donde te he explicado para qué sirven:

RegisterFileTypeEx(cMyExt, cMyFileType, cMyDescription,
cMyExt: Extensión con formato .XXX
cMyFileType: Tipo de Fichero (Fichero Bitmap, Fichero ejecutable,...)
cMyDescription: Descripción del tipo de fichero
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 22-06-2010
vna vna is offline
Registrado
 
Registrado: mar 2008
Posts: 6
Poder: 0
vna Va por buen camino
hola, gracias por la explicacion.
Estoy trabajando en delphi 2010 en Windows 7.
No se si mi error esta en el momento en el que realizo la asociacion. Pero cada vez que pruebo salta el mismo error.
Responder Con Cita
  #8  
Antiguo 22-06-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por vna Ver Mensaje
hola, gracias por la explicacion.
Estoy trabajando en delphi 2010 en Windows 7.
No se si mi error esta en el momento en el que realizo la asociacion. Pero cada vez que pruebo salta el mismo error.
Si es con Windows 7 revisa que no sean permisos a la hora de acceder al registro. Ya se sabe que es bastante menos restrictivo que las otras versiones de Windows.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 22-06-2010
vna vna is offline
Registrado
 
Registrado: mar 2008
Posts: 6
Poder: 0
vna Va por buen camino
Si, muchas gracias, por la ayuda, probe en windows XP y me anda perfectamente, asi que revisare eso que me dices porque necesito que me ande en windows 7. Muchas gracias de nuevo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Asociar Aplicación y Tipos de Archivo gaps2k Varios 1 10-04-2007 19:15:51
¿Como crear una aplicación cliente DCom de un servidor ya creado? Sergi Providers 1 08-01-2007 21:44:53
usar un programa ya creado para una nueva aplicacion fabriciof Varios 3 02-05-2004 20:50:31
Asociar archivo a mi aplicacion Alejo Varios 1 10-11-2003 06:36:37
Asociar Icono a un RES craven Gráficos 2 17-09-2003 23:44:03


La franja horaria es GMT +2. Ahora son las 15:33:27.


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
Copyright 1996-2007 Club Delphi