AntiShiftDelete是一款禁用Shift+Delete永久刪除的快捷鍵工具,很多用戶在使用電腦刪除文件時(shí),習(xí)慣性用Shift+Delete永久刪除,雖然很方便,但是這樣的話會(huì)導(dǎo)致刪除的文件無(wú)法恢復(fù),使用這款軟件之后就可以禁用該功能!
AntiShiftDelete簡(jiǎn)介
AntiShiftDelete是一個(gè)Shell Extension,它的功能是禁用永久刪除(Shift+Delete) 快捷鍵。
有一些人(包括我自己)都慣用永久刪除快捷鍵,從來(lái)不把文件刪到回收站。然而,這并不是什么好習(xí)慣,如果我們刪錯(cuò)了文件,這會(huì)給我們帶來(lái)很多麻煩,反復(fù)做無(wú)用功……
AntiShiftDelete擴(kuò)展便是幫助我們擺脫這個(gè)壞習(xí)慣的有力助手!安裝這個(gè)擴(kuò)展之后,當(dāng)我們?cè)俅问褂肧hift+Delete快捷鍵刪除文件時(shí),資源管理器不會(huì)刪除文件,而是會(huì)發(fā)出一聲提示音,提醒你使用正常的刪除功能。
AntiShiftDelete原理
AntiShiftDelete使用了微軟Detours庫(kù)來(lái)Hook資源管理其內(nèi)部的刪除方法。所以,AntiShiftDelete需要是一個(gè)Shell Extension,因?yàn)镾hell Extension會(huì)被資源管理器自動(dòng)加載。
Shell Extension
Shell Extension有很多種,不過(guò)為了讓explorer.exe盡快加載插件,我選擇使用 IconOverlayHandler (實(shí)現(xiàn) IShellIconOverlayIdentifier),因?yàn)檫@種擴(kuò)展可以在explorer.exe啟動(dòng)時(shí)直接加載。
Hook
Microsoft Detours 庫(kù)使用起來(lái)很方便,我也不打算多說(shuō)。在資源管理器Hook的方法倒是挺有趣的。
在 Windows Vista, 7, 8, 8.1, 10 和對(duì)應(yīng)的服務(wù)器版本中, explorer.exe不會(huì)直接調(diào)用WindowsAPI來(lái)操作文件而是使用FileOperation這個(gè)COM組件來(lái)操作文件。AntiShiftDelete便是Hook了FileOperation的虛函數(shù)達(dá)到阻止永久刪除的目的。
兼容性
理論上,Windows Vista及以上版本x86和x64還有對(duì)應(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