Jump to content











Photo
- - - - -

Is there a 'generic' context menu handler ?


  • Please log in to reply
6 replies to this topic

#1 gbrao

gbrao

    Frequent Member

  • Advanced user
  • 474 posts
  •  
    India

Posted 15 July 2018 - 08:52 AM

I mean one that can pick up details from a .ini file and then add them to the context menu. The ini file would have the menu-item text and the program to run.

I don't have the knowledge to develop a context menu handler.

 

For e.g. : FileMenu Tools (https://www.lopesoft.../filemenu-tools) allows you to configure the its context menu. The settings are stored in a settings.ini file.

 

Is a generic context menu handler available that will allow me to add a menu to the context menu (of all files) ? One that allows the user to specify what items to add to the menu.

 

Background :

 

I often need to rename files. I developed a program to do what I need. I used (static) cascading context menus as described here :

https://blog.sverrir...u-items-in.html

https://msdn.microso...7(v=vs.85).aspx

 

However there is a limit (16 I think) to the total number of items in such a menu (and its sub-menus).

 

I need a context menu with more than 16 items. That's why I wondered if a 'generic' context menu handler exists which will allow me to add them all in one menu.

 

Right now, as a workaround, I added three menus to the context menu. I would prefer to have only one with three submenus.

 

The attached image shows the three menus I have now. I'm hoping to have only one main menu with these three as submenus.

 

contmenu.jpg



#2 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 15 July 2018 - 10:36 AM

You mean in Explorer?
*like*:
https://rbsoft.org/d...click-enhancer/
or (Free) using "dynamic" items:
http://www.softpedia...-Explorer.shtml

Or - maybe - you want a "separate" tool?

*like*:
http://www.quickaccesspopup.com/

As a side note, essentially this can be done manually via the Registry, *like*:
https://www.askvg.co...p-context-menu/

AFAIK/AFAICR there may be differences in the context menu handling of different Windows version, so you may want to state which OS are you using.

:duff:
Wonko
  • Tokener and gbrao like this

#3 gbrao

gbrao

    Frequent Member

  • Advanced user
  • 474 posts
  •  
    India

Posted 15 July 2018 - 01:15 PM

As a side note, essentially this can be done manually via the Registry, *like*:
https://www.askvg.co...p-context-menu/

AFAIK/AFAICR there may be differences in the context menu handling of different Windows version, so you may want to state which OS are you using.

:duff:
Wonko

 

That's what I'm doing now. But there is a limit to the number of items that one menu can have using that method. 16 I think. My menu has more than 16 items. That's why I am using that method three times to get three menus in the context menu.

 

I would like to have only one menu in the context menu. The only way I can think of is use a context menu handler and then install/register it.

 

FileMenu Tools does it like this :

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shellex\ContextMenuHandlers\FileMenuTools]
@="{C1B2C38F-3DCA-4E3D-BC34-D5B87B636543}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C1B2C38F-3DCA-4E3D-BC34-D5B87B636543}]
@="FileMenuTools"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C1B2C38F-3DCA-4E3D-BC34-D5B87B636543}\InProcServer32]
@="H:\\FileMenu Tools\\FileMenuTools-portable_v7.0.5\\App\\FileMenu Tools\\FileMenuTools.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shellex\ContextMenuHandlers\FileMenuTools]
@="{C1B2C38F-3DCA-4E3D-BC34-D5B87B636543}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\FileMenuTools]
@="{C1B2C38F-3DCA-4E3D-BC34-D5B87B636543}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\ShellEx\ContextMenuHandlers\FileMenuTools]
@="{C1B2C38F-3DCA-4E3D-BC34-D5B87B636543}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]
"{C1B2C38F-3DCA-4E3D-BC34-D5B87B636543}"="FileMenuTools"


But I cannot develop a context menu handler.

I need a dll like FileMenuTools.dll but one which allows me to configure the menu the way I wnat it.



#4 gbrao

gbrao

    Frequent Member

  • Advanced user
  • 474 posts
  •  
    India

Posted 15 July 2018 - 01:23 PM

I want a menu like this, but without having to use FileMenu Tools.

 

CONTMENU1.JPG



#5 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 15 July 2018 - 01:52 PM

I want a menu like this, but without having to use FileMenu Tools.

Why don't you just §@ç#ing try the (ALREADY given) Fast Explorer? :whistling:

http://www.softpedia...-Explorer.shtml
 
Snippet from Fast Explorer:
 

Overview
--------

Fast Explorer is a context menu management utility. It allows you to manage
context menus items of shell's file objects and virtual objects displayed
in a file manager like Windows Explorer. Fast Explorer places at your disposal
handy tools to customize both static and dynamic menu items and even more!
It's a very simple way to make your often used file actions quickly accessible.

With Fast Explorer you can add new menu items, submenus, dividers,
specify menu bitmaps and hint text, and also clean up unused menu items
added by other programs. Moreover you can define your own look & feel
for the dynamic menu items added from within Fast Explorer.

Menu items can be associated with any shell object class (ex: file type)
registered in the system, including a set of predefined file types.
For detailed description on file classes supported visit Fast Explorer web site
or refer to the MSDN library.

Fast Explorer includes the shell extension library FEShlExt.dll which allows
third party applications to add custom context menu items. Please refer to
Fast Explorer Context Menu Extension DLL topic for details.

...

Fast Explorer Context Menu Extension DLL
----------------------------------------

Fast Explorer Context Menu Extension DLL is the shell extension library
that allows third party applications to add sophisticated context menu items.
It is configured via plain Ini-file and does not require for developers
a deep knowledge in the areas of Windows shell extensions and Windows Registry.

Fast Explorer Context Menu Extension DLL (FEShlExt.dll) may be freely used and
redistributed with third party products for both commercial and non-commercial
purposes. The only requirement is to mention in the product documentation that
the product has it included.

The FEShlExt.dll shell extension module is a regular self-registering COM DLL.

The FastExplorer.ini file describes Fast Explorer-driven context menu items
and is located in the same folder where FEShlExt.dll is located.

...



:duff:
Wonko



#6 gbrao

gbrao

    Frequent Member

  • Advanced user
  • 474 posts
  •  
    India

Posted 16 July 2018 - 05:28 AM

Missed that.

Seems to be what I wanted.



#7 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 16 July 2018 - 07:43 AM

Missed that.

Seems to be what I wanted.

Yep :), though it has to be seen if it still works with newer OS, like 8/8.1/10. :unsure:

 

:duff:

Wonko






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users