Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Asociar una extensión de fichero determinada a una aplicación
Lenguaje de programación Borland Delphi


Este truco sirve para asociar a una extensión una aplicación, es decir, cuando se abra un fichero con esta extensión, automáticamente, se ejecutará la aplicación configurada para esta extensión. Por ejemplo, cuando ejecutamos un documento de Word (de extensión ".doc") se abre Word directamente.

En el USES del formulario deberemos poner: Registry y ShlObj. Introducimos un botón llamado bAsociarExtension y en el evento click del mismo ponemos el siguiente código:

procedure TformTrocear.bAsociarExtensionClick(Sender: TObject);
   procedure RegistraExtension( Extension,
                                TipoFichero,
                                Descripcion,
                                Exe:string;
                                IndiceIcono: integer);
   {Uses: Registry, ShlObj}
   var
      Reg: TRegistry;
   begin
     Reg := TRegistry.Create;
     try
       with Reg do
       begin
         RootKey := HKEY_CLASSES_ROOT;
         OpenKey(Extension, True);
         WriteString('', TipoFichero);
         CloseKey;
         OpenKey(TipoFichero, True);
         WriteString('', Descripcion);
         CloseKey;
         OpenKey(TipoFichero + '\DefaultIcon', True);
         WriteString('', Exe + ',' + IntToStr(IndiceIcono));
         CloseKey;
         OpenKey(TipoFichero + '\Shell\Open', True);
         WriteString('', '&Open');
         CloseKey;
         OpenKey(TipoFichero + '\Shell\Open\Command', True);
         WriteString('', '"' + Exe + '" "%1"');
         CloseKey;
       end;
       SHChangeNotify( SHCNE_ASSOCCHANGED,
                       SHCNF_IDLIST,
                       nil, nil);
     finally
       Reg.Free;
     end;
   end;
begin
  RegistraExtension( '.trz',
                     'Trozos',
                     'Trozos de fichero para unir con AjpdSoft Trocear Fichero',
                     Application.ExeName,
                     0);
  MessageDlg('A partir de ahora, al hacer doble click sobre un fichero ' +
      'con extensión .trz se ejecutará este programa. Si cambia el programa ' +
      'de ubicación deberá volver a asociar la aplicación.', mtInformation,
      [mbok], 0);
end;
Nota: en este caso, cada vez que se haga doble click o se abra un fichero con extensión .trz, por ejemplo: Prueba.trz, se ejecutará nuestra aplicación. Se lo hemos indicado en "Application.ExeName".
Cuando se abre nuestra aplicación por hacer doble click sobre el fichero asociado (.trz), se le pasará como parámetro el nombre del fichero y la ubicación. Con lo cual, si queremos que al ejecutarse nuestra aplicación, por abrir un archivo asociado a la misma, sepamos qué fichero la ha ejecutado, basta con:
  if ParamStr(1) <> '' then  //si se ha hecho doble click a un fichero de extensión .trz
  begin
    txtFicheroUnir.Text := ParamStr(1);
    //...
  end;




Publicado el: 2003-10-12

Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A