您的位置:首页 > 运维架构 > Shell

Windows Shell 程序

2015-05-29 19:41 411 查看

关于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的方式能不能做到一次处理).

批处理时候,添加中文会乱码

我就知到这些了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: