吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8788|回复: 45
收起左侧

[原创工具] AntiShiftDelete 禁用 Shift+Delete 永久删除 快捷键

  [复制链接]
JemmyloveJenny 发表于 2020-8-7 03:38
本帖最后由 JemmyloveJenny 于 2020-8-7 03:40 编辑

用电脑这么多年来,我习惯了用Shift+Delete这个快捷键永久删除文件,回收站几乎就没用过……
但是前一阵 有一次我手残,本想删一个文件,但是选择的时候删了旁边一整个文件夹。电脑的SSD启用了TRIM,数据恢复软件扫描不出来……
因此我就想要禁用Shift+Delete快捷键,改掉这个坏习惯。但是我搜了一下,发现好像没有什么好方法?
网上看到的方法都是键盘钩子之类的,但是键盘钩子有时好用有时失灵,而且影响了其他软件使用这个快捷键(比如Chrome地址栏,和VisualStudio)。
因此我就决定自己写一个程序禁用Shift+Delete快捷键。
搜狗截图20200807033514.png
现在我写完了也开源了,发出来拯救一下其他想要改正这个坏习惯的人吧……
Github地址:https://github.com/JemmyLoveJenny/AntiShiftDelete

AntiShiftDelete

简介

AntiShiftDelete是一个Shell Extension,它的功能是禁用 永久删除(Shift+Delete) 快捷键。
有一些人(包括我自己)都惯用永久删除快捷键,从来不把文件删到回收站。然而,这并不是什么好习惯,如果我们删错了文件,这会给我们带来很多麻烦,反复做无用功……
AntiShiftDelete扩展便是帮助我们摆脱这个坏习惯的有力助手!安装这个扩展之后,当我们再次使用Shift+Delete快捷键删除文件时,资源管理器不会删除文件,而是会发出一声提示音,提醒你使用正常的删除功能。

原理

AntiShiftDelete使用了微软Detours库来Hook资源管理其内部的删除方法。所以,AntiShiftDelete需要是一个Shell Extension,因为Shell Extension会被资源管理器自动加载。

Shell Extension

Shell Extension有很多种,不过为了让explorer.exe尽快加载插件,我选择使用 IconOverlayHandler (实现 IShellIconOverlayIdentifier),因为这种扩展可以在explorer.exe启动时直接加载。

Hook

Microsoft Detours 库使用起来很方便,我也不打算多说。在资源管理器Hook的方法倒是挺有趣的。
在 Windows Vista, 7, 8, 8.1, 10 和对应的服务器版本中, explorer.exe不会直接调用WindowsAPI来操作文件而是使用FileOperation这个COM组件来操作文件。AntiShiftDelete便是Hook了FileOperation的虚函数达到阻止永久删除的目的。

兼容性

理论上,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



最后给一个安装包 AntiShiftDeleteSetup.zip (147.13 KB, 下载次数: 101)

免费评分

参与人数 11吾爱币 +17 热心值 +10 收起 理由
青春易逝 + 1 + 1 谢谢@Thanks!
郭嘉的不要抢 + 1 我很赞同!
visionbaby + 1 + 1 谢谢@Thanks!
艾爱姆Joker + 1 + 1 深有同感~
孙天琪 + 1 + 1 用心讨论,共获提升!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
chao8709 + 1 + 1 热心回复!
Monitor + 1 + 1 感谢开源
lizhipei78 + 2 + 1 谢谢@Thanks!
hbwjw + 1 我很赞同!
joneqm + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

poca 发表于 2020-8-7 06:49
shift+delete这两个想要误触 挺难的

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
无痕软件 + 1 + 1 说的没错,习惯问题。。。我从不这么按。。。。

查看全部评分

 楼主| JemmyloveJenny 发表于 2020-8-7 11:54
lizhipei78 发表于 2020-8-7 09:10
这个功能非常 好,能改变我的不好习惯,另外能不能出一个避免格式化的功能,以前在WIN7上知道怎么弄,WIN10 ...

可以做到避免格式化的,HIPS类软件或者火绒的自定义防护都可以做到
你看一下这个 http://bbs.huorong.cn/thread-17756-1-1.html
hsppc 发表于 2020-8-7 05:50
飞龙project 发表于 2020-8-7 06:56
感谢分享
yovng 发表于 2020-8-7 07:48
我这最近刚开始喜欢上使用shift+delete,听你说的一阵后怕,谢谢楼主
SpacesCapes 发表于 2020-8-7 08:04
不想删这个功能,纯支持一下
EnterpriseSolu 发表于 2020-8-7 08:10
shift+delete删除了文件,其实没有删掉,还可以恢复出来,只有用了sdelete才算是彻底删除
光影幽悠 发表于 2020-8-7 08:20
同样Shift+Delete,一直如此。
不过我是因为强迫症
djnym 发表于 2020-8-7 08:23
我都是每次删文件之前先想一下,再删。
pyzz58 发表于 2020-8-7 08:32
厉害,好棒的样子,我是新人 ,来留个名
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表