关于Windows Shell的资料
- Windows Shell
- Creating Shell Extension Handlers
- Shell API Reference
- Shell Developer’s Guide
- (转)windows shell 编程
我的处理方式
写一个命令行程序(Console).
传入的参数是 文件夹名称 或者 文件名称.
将这个程序加到右键菜单.
这样就不用看那一堆英文资料了…
主要是将对应的命令行程序加入注册表就行了.
文件夹右键菜单:
[HKEY_CLASSES_ROOT\Directory\shell\FileFolderMenu\command]
“X:\Path\Test.exe” “%1”
写入注册表之后,鼠标右击文件夹的时候,[FileFolderMenu]出现在右键菜单中.右键菜单触发的时候,传入的第二个参数是一个文件夹路径.
如果想传入一些其他固定参数,可以 “X:\Path\Test.exe” “arg1” “%1”
这样传入的第二个参数为arg1 第三个参数为文件夹路径
command的值 每一个选项都要用双引号括起来,用空格分割.
想设置右键菜单的Icon图片,就在
[HKEY_CLASSES_ROOT\Directory\shell\FileFolderMenu]下
设置一个名称为icon,值为X:\Path\Test.exe
这样右键菜单的图标就是Test.exe的图标
文件的右键菜单:
同上 只不过注册表路径不同.
[HKEY_CLASSES_ROOT\*\shell\FileMenu\command]
在点击任意文件的时候,右键菜单会出现[FileMenu]
下面是我写的一个批处理文件. ^.^
批处理文件
@echo off
set Path=%cd%
set Reg_Cmd=%SystemRoot%\System32\reg
:: 文件
%Reg_Cmd% add HKEY_CLASSES_ROOT\*\shell\Encrypt\command /f /d "\"%Path%\FyTools.exe\" \"Encrypt\" \"%%1\""
%Reg_Cmd% add HKEY_CLASSES_ROOT\*\shell\Encrypt\ /f /v icon /d "%Path%\FyTools.exe"
%Reg_Cmd% add HKEY_CLASSES_ROOT\*\shell\Decrypt\command /f /d "\"%Path%\FyTools.exe\" \"Decrypt\" \"%%1\""
%Reg_Cmd% add HKEY_CLASSES_ROOT\*\shell\Decrypt\ /f /v icon /d "%Path%\FyTools.exe"
:: 文件夹
%Reg_Cmd% add HKEY_CLASSES_ROOT\Directory\shell\Encrypt\command /f /d "\"%Path%\FyTools.exe\" \"Encrypt\" \"%%1\""
%Reg_Cmd% add HKEY_CLASSES_ROOT\Directory\shell\Encrypt\ /f /v icon /d "%Path%\FyTools.exe"
%Reg_Cmd% add HKEY_CLASSES_ROOT\Directory\shell\Decrypt\command /f /d "\"%Path%\FyTools.exe\" \"Decrypt\" \"%%1\""
%Reg_Cmd% add HKEY_CLASSES_ROOT\Directory\shell\Decrypt\ /f /v icon /d "%Path%\FyTools.exe"
@pause
不足的地方
- 使用的时候,会有一个黑窗口(console)一闪而逝…
- %2% .. 这个看到了 没去找资料.. 没测试..
- 这个菜单,不知道怎么将多个合并成一个. 比如svn 或者hg那种.我这种方式还是慎用.别把右键菜单搞的跟裹脚布似得.
- 如果选择 几个文件和几个文件,这种时候,是分别调用这个程序.不是一次性. (也不知道用msdn的方式能不能做到一次处理).
- 批处理时候,添加中文会乱码
- 我就知到这些了.