Ver Mensaje Individual
  #2  
Antiguo 05-12-2005
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Reputación: 22
Bicho Va por buen camino
Instalar Opcion al Menu Contextual Windows

Que tal,

no se si te he entendido bien pero a ver si esto lo que buscas: (sacado de trucomania)

Tal como hace el Winzip, (por ejemplo), que si en el explorer de Windows, al pulsar con el boton derecho
sobre un fichero, disponemos de una opcion en el menu para crear con el un fichero ZIP.
Con este truco, podras asociar a una (o varias) extensiones tu aplicacion, para que se comporte de igual
manera que el Winzip...
Sólo funciona con las extensiones ya registradas en Windows, pero usando el truco de registrar extensiones se arregla

Código Delphi [-]
procedure InstalaMenuContextual(Extension, Comando, CaptionMenu : string);
var Registro : TRegistry;
    Nombre   : string;
begin
  Registro := TRegistry.Create;
  try
    Registro.RootKey := HKEY_CLASSES_ROOT;
    if Registro.OpenKeyReadOnly('\.' + Extension) then begin
      Nombre := Registro.ReadString('');
      if Nombre <> '' then
        if Registro.OpenKey('\' + Nombre + '\shell', False) then
          Registro.Access := KEY_READ or KEY_WRITE;
        if Registro.OpenKey('APTprocess', True) then begin
          Registro.WriteString('', CaptionMenu);
          Registro.Access := KEY_READ or KEY_WRITE;
          if Registro.OpenKey('command', True) then Registro.WriteString('', '"' + Comando + '" "%1"');
        end;
    end else Raise Exception.create('Lo siento, la extension no es conocida por Windows');
  finally
    Registro.Free;
  end;
end;

Nota: debes incluir en el uses de tu aplicacion la clase Registry

Espero te sirva,

Saludos
Responder Con Cita