首页 > 代码库 > 资源管理器空白处右键菜单启动命令提示符

资源管理器空白处右键菜单启动命令提示符

感觉需要用到命令提示符的地方越来越多了,比如学习python、执行vbs脚本、ping一个IP、运行系统命令等等。这些操作大部分需要cd到某一个目录,而常规的启动命令提示符的方法是win+R,输入cmd,cd [path]。。。太繁琐。于是就想参考git的做法,给右键菜单加个菜单项,直接启动命令提示符并设置为当前路径。


网上搜了很多方法,大部分是改注册表,HKEY_CLASS_ROOT\FOLDER\SHELL下新建子项,默认值填写为右键菜单要显示的文字,其下再新建一个command的子项,默认值填写为 cmd.exe /k cd "%l" 。但这是在文件夹上右击才有有效的方法,不适合我的需求,继续查。

还有一种方法是HKCS\DIRECTORY\BACKGROUND\SHELL下新建子项,与上述方法相同。只是我试过之后却没有效果。

终于,发现这一篇文章 将程序添加到资源管理器的右键菜单 介绍了一份文档:《Windows Shell扩展编程完全指南.chm》,非常实用。他使用atl编写了一个dll,实现了一些com接口,使得这个dll可以被shell调用,从而实现了需要的功能。

我照猫画虎,以他的例子为参考实现了在资源管理器空白处右键单击,弹出菜单项,单击菜单项则进入命令提示符并cd到当前路径的功能。(真TM长。。。)


最后搞了个bat,自动注册dll、添加注册表项,免得又是手动点来点去。死程们哪个不希望以最少的时间干最多的事以节省出时间做爱做的事?(又TMD这么长,没文化啊。。。)

安装 ShellEx.bat

reg add  HKCR\Directory\Background\shellex\ContextMenuHandlers\ShellExtention /ve /d {C9D5B00A-AB16-45C6-BAF8-1E750A981783} /f
copy ShellExt.dll %windir%\ShellExt.dll
regsvr32.exe /s ShellExt.dll
@echo 操作成功完成!
@pause


卸载 ShellEx-uninstall.bat

reg delete HKCR\Directory\Background\shellex\ContextMenuHandlers\ShellExtention /f
regsvr32.exe /u /s ShellExt.dll
del %windir%\ShellExt.dll
@echo 操作成功完成!
@pause


如果你也想要这个功能——百度网盘。

如果你想自己实现的话——《Windows Shell扩展编程完全指南.chm》。