定制右鍵功能,看這一篇就夠了


前言

  • 有時候有些經常用到的功能希望可以自定義加入右鍵菜單中,那么本文可以帶你了解通過修改注冊表方式定制右鍵菜單。
  • 特別注意修改注冊表屬於高危操作,不認識、不知道的注冊表不要輕易刪除或修改。在編輯注冊表之前記得備份注冊表。
  • 右鍵菜單分為很多種,后面我會介紹幾個常用的情況,大致情況有下面幾種:
      1. 桌面右擊空白處彈出菜單
      2. 文件夾右擊空白處彈出菜單
      3. 右擊單個文件彈出菜單
      4. 右擊多個文件彈出菜單
      5. 右擊單個文件夾彈出菜單
      6. 右擊多個文件夾彈出菜單
      7. 右擊文件和文件夾組合時彈出菜單
  • 注冊表對大小寫不敏感,網上那些文檔里面項的名字大小寫各不相同,但都是生效的。

注冊表參數

參數和解釋

參數 解釋
%* 所有參數,我測試結果是快捷方式的參數
%0、%1 文件路徑
%2 - %9 第二到第九個參數,快捷方式的參數
%D 當前目錄路徑
%H 意義不明,但測試結果都是0
%I 意義不明,每次都是:num:num格式,每次都會改變
%L %1,不過是固定長路徑,所以都說這個更好
%S 意義不明,但測試結果都是1
%V 文件路徑
%W 當前文件的父目錄的路徑

驗證參數

    為了驗證上述參數我寫了一個go的腳本來打印通過修改注冊表時右鍵參數具體值。代碼如下:

package main

import (
	"fmt"
	"os"
)

func main() {
	for _, v := range os.Args {
		fmt.Printf("[%s]\n", v)
	}
	fmt.Scanln()
}

    為方便copy,我把下面注冊表的值放出來:

"C:\regedit\regedit.exe" "*: %*" "0: %0" "1: %1" "2: %2" "3: %3" "4: %4" "5: %5" "6: %6" "7: %7" "8: %8" "9: %9" "D: %D" "H: %H" "I: %I"  "L: %L" "S: %S" "V: %V" "W: %W"

    按照下圖HKEY_CLASSES_ROOT\*\shell\regeditTest\command中添加上面那個命令行,測試右鍵單個文件結果如下:

  1. 右擊文件為快捷方式時參數列表才有數據,已經測過不支持%10,右擊文件時不會出現參數列表值。
  2. 右擊文件為快捷方式時%W會有不一樣的結果,當起始位置為空結果為快捷方式所在目錄,當起始位置有填目錄則結果就是填寫的值。看下圖:

注冊表參數總結

  1. 知道每個參數的含義,那么在運行自己寫的程序時就知道注冊表里面的參數如何填寫,不會有問題。
  2. 關於第二到第九的參數以及%W的特殊之處,我也是試出來的,因為看別人的博文寫的不清楚。所以最好多查查資料搞清楚具體含義再使用會避免很多麻煩。

右擊文件菜單配置

    1. 常用配置如下

配置鍵 配置含義
icon 菜單中顯示的圖標,一般用ico圖標文件。也可以直接填exe可執行程序文件,此時直接用該可執行程序的圖標。不填則不顯示,文件不存在顯示白板。
MuiVerb 菜單顯示名字,不填則默認用注冊表的名字
SubCommands 多級菜單時需要
MultiSelectModel 官方解釋Single:右擊單個文件、Document:最多選15個文件、Player:看文檔,相當於沒限制。經測試不要這一項用的Document限制

    2. 結果截圖如下所示,當配置Single時多選文件右鍵會隱藏配置的菜單:

多級菜單

先添加一級菜單

    在HKEY_CLASSES_ROOT\*\shell\one下,增加一個子項SubCommands=two1;two2;two3,示例這三個值會在下一步作為注冊表名。

再添加二級菜單

    在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell下面添加如下幾個項,還可以添加三級菜單。

還可以添加三級菜單

    添加三級菜單也是在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell下面,如果需要可以添加更多級菜單。

看下效果圖

    看下圖,需要執行命令,則在圖中對應的command中添加命令即可。

通過注冊表文件創建

    可以先通過注冊表工具先創建好可用的注冊表配置,再右鍵一個個導出,然后用記事本把這些注冊表合並在一起即可。

    下面是導出的配置組合,保存成.reg文件,雙擊執行即可完成注冊表配置。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\one]
"icon"="C:\\regedit\\seting.ico"
"SubCommands"="two1;two2;two3"
"MuiVerb"="一級菜單"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\two1]
"MUIVerb"="二級菜單1"
"icon"="C:\\regedit\\seting.ico"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\two1\command]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\two2]
"MUIVerb"="二級菜單2"
"icon"="C:\\regedit\\seting.ico"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\two2\command]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\two3]
"MUIVerb"="二級菜單3"
"icon"="C:\\regedit\\seting.ico"
"SubCommands"="three31;three32"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\two3\command]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\three31]
"icon"="C:\\regedit\\seting.ico"
"MUIVerb"="三級菜單31"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\three31\command]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\three32]
"icon"="C:\\regedit\\seting.ico"
"MUIVerb"="三級菜單32"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\three32\command]

各種位置的注冊表

右擊桌面空白位置

    注冊表位置:HKEY_CLASSES_ROOT\DesktopBackground\Shell\one,效果如下圖所示。

右擊文件夾

    注冊表位置:HKEY_CLASSES_ROOT\Directory\shell\one,效果如下圖所示。

對應文件后綴的打開方式

    這個通過注冊表修改比較繁瑣,我找到一個軟件可以輕松搞定:FileTypesMan。當然可以按照下圖所示HKEY_CLASSES_ROOT\.test自定義指定后綴文件的菜單:

總結

  1. 關於右鍵菜單還有很多技巧,我只是把我知道的,我常用的列出來,做個記錄。更多技巧可以百度或者谷歌吧。
  2. 希望本文可以幫到大家,反正我已經通過自己的瞎搞,弄了一套舒服的適合我自己的右鍵菜單,並且制作了reg文件,換個電腦分分鍾搞定。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM