如何定制Windows系统右键菜单

今天心血来潮把几个自己常用的工具定制到了系统的右键菜单。包括notepad++,7zip,还有复制文件全路径和文件夹路径。下面简单介绍一下步骤。

1. Windows系统右键菜单对应的注册表位置

Windows系统的右键菜单对应着如下的注册表位置。

1)所有文件的右键菜单:

如何定制Windows系统右键菜单

2)所有目录的右键菜单:

如何定制Windows系统右键菜单

2.添加自己定制的右键菜单

1)如下的代码存为.reg文件,双击就能把注册表键值导入到注册表中。

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Notepad++]
@="Notepad++"
"Icon"="...\\notepad++ico.ico"
"Position"="Middle" [HKEY_CLASSES_ROOT\*\shell\Notepad++\command]
@="\"...\\notepad++.exe\" \"%1\"" [HKEY_CLASSES_ROOT\*\shell\7zip]
@="7zip"
"Icon"="...\\7zipico.ico"
"Position"="Middle" [HKEY_CLASSES_ROOT\*\shell\7zip\Command]
@="\"...\\7z.exe\" a \"%1\".zip \"%1\"" [HKEY_CLASSES_ROOT\Directory\shell\7zip]
@="7zip"
"Icon"="...\\7zipico.ico"
"Position"="Middle" [HKEY_CLASSES_ROOT\Directory\shell\7zip\command]
@="\"...\\7z.exe\" a \"%1\".zip \"%1\"" [HKEY_CLASSES_ROOT\*\shell\CopyFileFullName]
@="Copy File FullName"
"Icon"="...\\fullpath.ico"
"Position"="Middle" [HKEY_CLASSES_ROOT\*\shell\CopyFileFullName\Command]
@="...\\copyfullname.bat \"%1\"" [HKEY_CLASSES_ROOT\*\shell\CopyFileName]
@="Copy File Name"
"Icon"="...\\name.ico"
"Position"="Middle" [HKEY_CLASSES_ROOT\*\shell\CopyFileName\Command]
@="...\\copyname.bat \"%1\"" [HKEY_CLASSES_ROOT\*\shell\CopyFolderName]
@="Copy Folder Name"
"Icon"="...\\folder.ico"
"Position"="Middle" [HKEY_CLASSES_ROOT\*\shell\CopyFolderName\Command]
@="...\\copyfolder.bat \"%1\"" [HKEY_CLASSES_ROOT\Directory\shell\CopyFolderName]
@="Copy Folder Name"
"Icon"="...\\folder.ico"
"Position"="Middle" [HKEY_CLASSES_ROOT\Directory\shell\CopyFolderName\command]
@="...\\copyname.bat \"%1\""

2)如下的代码是删除上面添加这些注册表键值。

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\Notepad++]

[-HKEY_CLASSES_ROOT\*\shell\7zip]

[-HKEY_CLASSES_ROOT\Directory\shell\7zip]

[-HKEY_CLASSES_ROOT\*\shell\CopyFileFullName]

[-HKEY_CLASSES_ROOT\*\shell\CopyFileName]

[-HKEY_CLASSES_ROOT\*\shell\CopyFolderName]

[-HKEY_CLASSES_ROOT\Directory\shell\CopyFolderName]

3)简单说明

其实就是把当前的文件或者文件夹作为参数(%1)传给你需要的应用。各个应用的命令行参数可以自己去查帮助。比如我的7zip使用的是压缩命令,命令行参数就是

1
7z.exe a “%1".zip "%1"

把当前文件或者文件夹放入名为文件(夹)名加上.zip的压缩包中。

 

关于复制文件名和文件夹名的命令,我是用了如下的bat文件,分别存在了copyfullname.bat

1
2
@echo off
echo %~1 | clip

copyname.bat

1
2
@echo off
echo %~nx1 | clip

copyfolder.bat三个bat中。

1
2
@echo off
echo %~dp1 | clip

其实就是把当前参数放进了剪切板里。

下面列举了关于%1的一些常见用法。

        %~1             - 删除引号("),扩充 %1

        %~f1            - 将 %1 扩充到一个完全合格的路径名

        %~d1            - 仅将 %1 扩充到一个驱动器号

        %~p1            - 仅将 %1 扩充到一个路径

        %~n1            - 仅将 %1 扩充到一个文件名

        %~x1            - 仅将 %1 扩充到一个文件扩展名

        %~s1            - 扩充的路径指含有短名

        %~a1            - 将 %1 扩充到文件属性

        %~t1            - 将 %1 扩充到文件的日期/时间

        %~z1            - 将 %1 扩充到文件的大小

3. 效果

如何定制Windows系统右键菜单

上一篇:如何将程序添加到Windows桌面右键菜单


下一篇:Windows上右键git菜单出来的原因