Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Agregar al Menu Contextual (https://www.clubdelphi.com/foros/showthread.php?t=36071)

Cepero 01-10-2006 03:14:25

Agregar al Menu Contextual
 
Hola a todos, estoy haciendo una aplicacion y quiero añadir al menu contextual de windows una opcion, he visto otros hilos por ahi, pero traen para hacerlo con ficheros de una extension especifica, y quiero que aparezca para cualquier tipo de ficheros

Muchas gracias de antemano

aeff 20-10-2006 02:40:38

Esto me lo enviaron(de parte de ixMike Lunatiko (de la Luna)), y yo te lo voy a enviar a ti, espero que te sirva, acuerdate de declarar la variable TRegistry y todo lo demas:

-Primero, en HK_CLASSES_ROOT buscas la extensión del archivo (.ext, por ejemplo) y el valor "(Predeterminado)" escribes lo que sea (algo que puedas recordar, en este ejemplo "myapp.ext") En el caso de que ya haya algo escrito ir al siguiente paso.
-Después crear la clave HK_CLASSES_ROOT\myapp.ext (o lo que hayas escrito antes). Ahí, en "(Predeterminado)" escribes la descripción del archivo, y creas dos SubClaves "DefaultIcon" y "shell"
-En "Predeterminado" de DefaultIcon escribes el archivo de icono que quieras poner con el índice (ejemplo: "C:\Windows\system32\shell32.dll,14" ó "C:\Archivos de programa\MyApp\MyApp.exe,0") Este icono será con el que aparezca en el Explorador.
-En "Shell" creas tantas claves como subitems quieras en el Explorador. Por ejemplo creas "open" (esta es la que se ejecuta por defecto), en "Predeterminado" de "open" pones lo que quieras que aparezca en el Item del menú del Explorador, creas en "open" una subclave llamada "command" y en su valor "Predeterminado" escribes el comando a ejecutar (Por ejemplo "C:\archivos de programa\MyApp\Myapp.exe %1") "%1" sirve para indicar el archivo seleccionado.

En teoría ya está todo hecho, pero para que en Explorador aparezcan los cambios debes reiniciar sesión o ejecutar la función SHChangeNotify de la API de windows (está en la unit "ShlObj" o en "Ole2", no lo recuerdo bien) con los valores adecuados (mira la ayuda de la función).



En cuanto lo del ejemplo que incorpora Delphi, eso es especial, porque permite con una DLL crear cuantos items necesites, o ninguno si el archivo no es compatible, y poner icono en el Item y la propiedad Hint, pero también es más complejo.


Bye!!!;)


La franja horaria es GMT +2. Ahora son las 09:24:50.

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