我一直在編寫實用程序,並通過*的Shell鍵上的Regedit將它們映射到上下文菜單,但我無法弄清楚如何使子菜單像一些更受歡迎的實用程序一樣。如何在Windows中創建上下文菜單子菜單?
例如,如果我有三個腳本將文件移動和重命名爲三個不同的文件夾,現在我有三個不同的上下文菜單條目。我希望有一個名爲「移動和重命名...」的擴展到三個。
我一直在編寫實用程序,並通過*的Shell鍵上的Regedit將它們映射到上下文菜單,但我無法弄清楚如何使子菜單像一些更受歡迎的實用程序一樣。如何在Windows中創建上下文菜單子菜單?
例如,如果我有三個腳本將文件移動和重命名爲三個不同的文件夾,現在我有三個不同的上下文菜單條目。我希望有一個名爲「移動和重命名...」的擴展到三個。
您尚未指定您正在使用的語言。無論如何,你需要做的是編寫一個Shell Extension。有一個指南,here。
正如David所指出的那樣,在C#This blog post中解釋它是不可能的。
您必須編寫自定義Context Menu Handler。
您可以通過註冊表中創建一個子菜單上下文菜單,WIN 7所看到here
備份您的註冊表第一推薦!
本示例將帶有單個命令的子菜單放入任何文件(不是文件夾或桌面)上的右鍵上下文中。
菜單:
[HKEY_CLASSES_ROOT\*\shell\Custom Menu]
"MUIVerb"="Custom Tools"
"SubCommands"="Custom.copytoclip"
的命令:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Custom.copytoclip]
@="copytoclip description here"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Custom.copytoclip\command]
@="cmd /c clip < %1"
請小心編輯註冊表,Windows的其他版本可能不同的方式工作。
即使在.net 4中也不支持編寫託管外殼擴展。 –
@DavidHeffernan,感謝您的澄清。 –
使用.net 4刪除了特定的阻塞(並排運行時),但仍然存在代碼注入問題。由於這個原因,MS不支持託管外殼擴展。 –