Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Sistemas operativos > Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2007
Avatar de Alcolea
Alcolea Alcolea is offline
Miembro
 
Registrado: abr 2006
Ubicación: Santiago de Cuba, Cuba
Posts: 100
Poder: 19
Alcolea Va por buen camino
Question Permisos en el registro de Windows

Hola a todos, hace algún tiempo los compañeros del foro me ayudaron a encontrar el código que me era necesario para asociar una extensión a mi ejecutable y funcionó perfectamente salvo que solamente las llaves que crea son accesibles para sesión de trabajo que las crea, es decir, cuando ejecuto el programa en otra sesión de Windows los archivos no aparecen con el icono del programa ni se abre este al hacerle doble clic. Para lograr que funcione tengo que ir a registro y manualmente dar permiso de lectura a “Todos” en cada una de las llaves.

Entonces la pregunta es: ¿Cómo dar permiso en una llave a los distintos usuarios a través del código?

El código que empleo:

Código Delphi [-]
    
{Procedimiento para crear las claves del registro necesarias para asociar
    los archivo con extencion .exm al programa}

   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;
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
TRabajar con Registro de Windows dayrontbs Windows 1 29-06-2006 18:26:07
Uso de registro de Windows Alcolea Windows 3 05-06-2006 21:47:35
actualizar registro de windows jmeng2 Varios 2 08-12-2004 16:44:02
registro de Windows ebeltete API de Windows 1 17-06-2003 17:00:14
Registro de Windows Periyo Varios 3 08-05-2003 17:51:51


La franja horaria es GMT +2. Ahora son las 11:55:58.


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