Skip to content
ikas edited this page Feb 28, 2022 · 27 revisions

This app read the menu config files from the app's localdata folder then create the context menu

The menu config use json format

Manager UI

  1. The left panel is used to add menus and view the menu list.the folder button is used to open config folder
  2. The right panel is used to edit menu selected
  3. click add and edit then save

As shown in the picture, it adds a menu: Open the file with Notepad

Variable

 {path}  absolute address of the right-clicked file or folder   
 {name}  file name (version>=1.1.2.0)   
 {parent}  file parent(version>=1.9.0.0)

If the path has spaces
Generally use "{path}"
But if the parameter needs to contain quotation marks, then use \"{path}\"

Other special needs can be tested by yourself

Menu Name

you can modify menu name in manager ui

Menu Icon

use icon from exe or dll

"C:\Program Files\7-Zip\7zFM.exe",0

C:\WINDOWS\System32\SHELL32.dll,196

note: change a folder icon and open desktop.ini(hidden) in the folder to find the index number https://support.microsoft.com/en-us/topic/cannot-change-the-default-folder-icons-in-windows-explorer-db49e15d-d95a-bc68-9947-e3ec296f4514

use icon file

"C:\Users\user\icons\icon.ico"

Extension and Folder match

Match Extensions

# match file extensions
.apk .apkx .mapk

# *  match all
*

Match Folder

check checkbox to match

Multiple Files

Two modes are supported

  • EACH execute [exe] on each path
  • JOIN execute [exe] only once

Multiple Files EACH Mode

For each file,pass [param] to [exe], same as single file

Multiple Files JOIN Mode

All paths will be connected according to the configuration,then as {path}

Path delimiter

If 2 files are selected: path1.txt path2.txt

delimiter : ,
result path : "path1","path2" 

note: Every path will be surrounded by quotes

Param

When multiple files are selected, the [Param] may be different
so the [Param] can be overwritten here

Typically:

single file : "{path}"
multiple files : {path}

Sample

add files to 7z archive

Exe:
"C:\\Program Files\\7-Zip\\7zG.exe"

Param:
a -ad  "{parent}\{name}.7z"   "{path}"

[Multiple Files] Match Multiple Files:
- JOIN

[Multiple Files] Path Delimiter: (space!!!)
 
[Multiple Files] Param:
a -ad "{parent}\files.7z" {path}

https://github.com/ikas-mc/ContextMenuForWindows11/blob/dev-multiple/menuSample/15.add%20to%207z.json

about path in Param

First of all, when the path contains spaces,7z requires quoted path

When only one file is selected, By default, the path will not be quoted , We must add quotes manually
Param: "{path}"

When multiple files are selected, quotes are added to each path by default , We don't need to add quotes manually , we must override the [Param]
[Multiple Files] Param: {path}

Menu Cache

cache is used to reduce the slow loading caused by file io
The cache needs to be manually built each time

?: see tip and cache time 🔁:build cache x: clear cache to disable cache

Debug Helper

use customeContextMenuDebug.exe to show param
see json:
https://github.com/ikas-mc/ContextMenuForWindows11/blob/dev-multiple/menuSample/16.debug.json

More Menu sample

https://github.com/ikas-mc/ContextMenuForWindows11/tree/main/menuSample

Menu Config File Sample

{
    "title":"open with  7zFM",
    "exe":"\"C:\\Program Files\\7-Zip\\7zFM.exe\"",
    "param":"\"{path}\"",
    "icon":"\"C:\\Program Files\\7-Zip\\7zFM.exe\",0",
    "acceptExts":".zip .7z .rar .exe .iso",
    "acceptDirectory":false
}

Menu Config Files Folder

C:\Users\yourname\AppData\Local\Packages\{appId}\LocalState\custom_commands   

If you need to back up, just copy all the files here to a safe folder.

Clone this wiki locally