kkx給大家?guī)淼倪@款【AntiShiftDelete】是可以用來禁用Shift+Delete永久刪除的快捷鍵工具,不少用戶在使用計(jì)算機(jī)的時(shí)候都會(huì)按到Shift+Delete從而將文件永久刪除,永久刪除自然有不好恢復(fù)的弊端,使用這個(gè)工具可以禁用該熱鍵,如此一來刪除的文件就可以從回收站中進(jìn)行恢復(fù)了。

AntiShiftDelete介紹
用電腦這么多年來,我習(xí)慣了用Shift+Delete這個(gè)快捷鍵永久刪除文件,回收站幾乎就沒用過……
但是前一陣 有一次我手殘,本想刪一個(gè)文件,但是選擇的時(shí)候刪了旁邊一整個(gè)文件夾。電腦的SSD啟用了TRIM,數(shù)據(jù)恢復(fù)軟件掃描不出來……
因此我就想要禁用Shift+Delete快捷鍵,改掉這個(gè)壞習(xí)慣。但是我搜了一下,發(fā)現(xiàn)好像沒有什么好方法?
網(wǎng)上看到的方法都是鍵盤鉤子之類的,但是鍵盤鉤子有時(shí)好用有時(shí)失靈,而且影響了其他軟件使用這個(gè)快捷鍵(比如Chrome地址欄,和VisualStudio)。
因此我就決定自己寫一個(gè)程序禁用Shift+Delete快捷鍵。
AntiShiftDelete基本簡介
AntiShiftDelete是一個(gè)Shell Extension,它的功能是禁用 永久刪除(Shift+Delete) 快捷鍵。
有一些人(包括我自己)都慣用永久刪除快捷鍵,從來不把文件刪到回收站。然而,這并不是什么好習(xí)慣,如果我們刪錯(cuò)了文件,這會(huì)給我們帶來很多麻煩,反復(fù)做無用功……
AntiShiftDelete擴(kuò)展便是幫助我們擺脫這個(gè)壞習(xí)慣的有力助手!安裝這個(gè)擴(kuò)展之后,當(dāng)我們再次使用Shift+Delete快捷鍵刪除文件時(shí),資源管理器不會(huì)刪除文件,而是會(huì)發(fā)出一聲提示音,提醒你使用正常的刪除功能。
兼容性
理論上,Windows Vista及以上版本x86和x64還有對應(yīng)的服務(wù)器版本,都能使用這個(gè)擴(kuò)展。但是我不確定是否真的能兼容這么多……
桌面版本: Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10
服務(wù)器版本: Server 2008, Server 2008 R2, Server 2012, Server 2012 R2, Server 2016
工作原理
AntiShiftDelete用了微軟Detours庫來Hook資源優(yōu)化配置其的內(nèi)部刪掉方式。因此,AntiShiftDelete必須是一個(gè)ShellExtension,由于ShellExtension會(huì)被資源管理器全自動(dòng)加載。
ShellExtension
ShellExtension有許多種,但是為了能讓explorer.exe盡早加載外掛,我選擇應(yīng)用IconOverlayHandler(實(shí)現(xiàn)IShellIconOverlayIdentifier),這種拓展還可以在explorer.exe運(yùn)作時(shí)立即加載。
Hook
MicrosoftDetours庫用起來更方便,我也不準(zhǔn)備多講。在資源管理器Hook的方式倒是挺有意思的。
在WindowsVista,7,8,8.1,10和相匹配服務(wù)器版本中,explorer.exe不容易立即啟用WindowsAPI去操作文檔反而是應(yīng)用FileOperation這一COM部件去操作文檔。AntiShiftDelete就是Hook了FileOperation的虛函數(shù)做到阻攔永久刪除的效果。