PDA

Ver la Versión Completa : Agregar Opciones Menu Contextual


lalogrosz
16-03-2005, 17:52:11
Hola, necesito saber si hay algun codigo fuente para editarlo a gusto sobre el hecho de agregarle al menu contextual de windows (al que hacemos click derecho en los archivos y carpetas) opciones a gusto. Mas alla de las de Mover a... o Copiar a...
Algo como hace por ejemplo el WinZip que le agregar opciones como descomprimir o Add...

Muchas Gracias

keyboy
17-03-2005, 01:20:19
En Delphi 7 viene el demo contmenu.dpr en la carpeta Demos\ActiveX\ShellExt que a la letra dice:


This COM server defines a Context Menu shell extension. This allows the user
to right click on Delphi Project files (.DPR) from the Explorer and compile
them using the DCC32.exe command line compiler.

Este servidor COM implementa un menú contextual como extensión del shell.
La extensión permite al usuario abrir el menú contextual del explorador en
archivos de projecto (.DPR) para compilarlos usando el compilador de línea
DCC32.exe.


No lo he probado pero parece ser lo que buscas.

bye

Crandel
26-09-2006, 00:09:02
No recuerdo exactamente donde es, pero se que se debe agregar simplemente un clave en el registro de windows

ixMike
26-09-2006, 19:20:39
En cuanto a lo de la clave del registro, en realidad son varias:

-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.

Espero que te sirva de ayuda. ;)