The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何刪除 Windows 7 特定應用程式的捷徑清單 (Jump Lists)

之前分享過 如何清空 [開始] / [執行] 的所有歷史紀錄 我個人覺得非常實用,但最近卻想到 Windows 7 提供的 捷徑清單 (Jump List) 也是類似最近開啟的紀錄,但與之前 Vista/XP 的 最近開啟的文件(Recent)不同路徑,雖然找到清除的方法,但我不想將所有捷徑清單清除掉,而只想清除特定應用程式的捷徑清單而已,我找了好久才找到刪除這些資料的方法!

Vista/XP 的 最近開啟的文件(Recent) 路徑依然在以下路徑:(直接將以下路徑貼上檔案總管即可)

%APPDATA%\Microsoft\Windows\Recent\

雖然 Windows 7 也有這個目錄,裡面也會有文件開啟的歷史紀錄,但是預設是看不到的,要從 Win7 可以瀏覽最近的項目必須修改 [開始] 功能表的選項才行,如下圖示:

如果你完全不想儲存這些項目可以將下圖「隱私權」的部分取消勾選即可:

設定完成後在 Windows 7 的 [開始] 功能表就會看到這個選項了:

 

 

基本上 Windows 7 的捷徑清單跟以往非常不一樣,不放在機碼、也「不直接」儲存成捷徑的形式,而是用一種特殊的檔案格式儲存,而這些捷徑的檔案也統一透過 Windows API 存取, 捷徑清單 (Jump List) 包括兩種類型,檔案所在路徑分別如下:

常用項目

%APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations

自訂項目 ( 如下圖 已釘選 就是屬於 "自訂項目" 的捷徑清單,不同的程式可能有不同的自訂群組 )

%APPDATA%\Microsoft\Windows\Recent\CustomDestinations

  

如果你想清除這些捷徑清單就只要將這兩個目錄的檔案全部刪除即可。

但如何針對特定應用程式刪除呢?其實沒那麼容易判斷!

因為檔名透過某種雜湊(Hash)運算過,所以光是從檔名實在無法判斷所關聯的應用程式,我研究出判斷的方法,不過還真的很囉唆,可能要寫程式才能比較方便得知該檔案是屬於哪個應用程式的捷徑清單。

進入此捷徑清單目錄後會看到如下的檔案,這些檔案的其實都是 ZIP 壓縮檔:

7-Zip 開啟後裡面都是一個一個的捷徑項目(Shortcuts),例如下圖的 1 與 2 分別都是捷徑項目

如果你解壓縮出來,並將該檔案加上 .lnk 副檔名:

然後查看該檔案的屬性,就可以看到此捷徑是屬於哪個程式的捷徑:

透過這個繁瑣的步驟才能得知該檔案隸屬於那個應用程式,挺麻煩的吧,似乎不應該是「人類」在做的工作,改天有時間應該可以寫程式來幫忙刪除特定應用程式的捷徑清單,得知了這個方法要寫出來應該不難,如果有人先寫出來記得分享給我。 ^_^

如果你是寫 WinForm 的,可能會想自己實做捷徑清單 (Jump Lists),那麼你可以參考以下連結:

相關連結