Skip to content
ikas edited this page Feb 8, 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.6.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

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 extensions
.apk .apkx .mapk

# *  match all
*

match folder

check checkbox to match

Multiple Files

All file paths are concatenated together and provided as {path}

Path delimiter

two files : 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:
true

[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}

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 https://github.com/ikas-mc/ContextMenuForWindows11/blob/dev-multiple/menuSample/16.debug.json

more 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
}

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