AntiShiftDelete是一个可以禁用永久删除(Shift+Delete) 快捷键的实用小工具,很多人习惯使用Shift+Delete进行永久删除,但这样做不易恢复,所以使用该工具可以改善这种习惯。AntiShiftDelete使用简单,只需安装即可使用。
软件介绍
AntiShiftDelete是一个Shell Extension,它的功能是禁用 永久删除(Shift+Delete) 快捷键。
有一些人(包括我自己)都惯用永久删除快捷键,从来不把文件删到回收站。然而,这并不是什么好习惯,如果我们删错了文件,这会给我们带来很多麻烦,反复做无用功……
AntiShiftDelete扩展便是帮助我们摆脱这个坏习惯的有力助手!安装这个扩展之后,当我们再次使用Shift+Delete快捷键删除文件时,资源管理器不会删除文件,而是会发出一声提示音,提醒你使用正常的删除功能。
软件说明
理论上,Windows Vista及以上版本x86和x64还有对应的服务器版本,都能使用这个扩展。但是我不确定是否真的能兼容这么多……
桌面版本: Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10
服务器版本: Server 2008, Server 2008 R2, Server 2012, Server 2012 R2, Server 2016
工作原理
AntiShiftDelete用了微软Detours库来Hook资源优化配置其的内部删掉方式。因此,AntiShiftDelete必须是一个ShellExtension,由于ShellExtension会被资源管理器全自动加载。
ShellExtension
ShellExtension有许多种,但是为了能让explorer.exe尽早加载外挂,我选择应用IconOverlayHandler(实现IShellIconOverlayIdentifier),这种拓展还可以在explorer.exe运作时立即加载。
Hook
MicrosoftDetours库用起来更方便,我也不准备多讲。在资源管理器Hook的方式倒是挺有意思的。
在WindowsVista,7,8,8.1,10和相匹配服务器版本中,explorer.exe不容易立即启用WindowsAPI去操作文档反而是应用FileOperation这一COM部件去操作文档。AntiShiftDelete就是Hook了FileOperation的虚函数做到阻拦永久删除的效果。