C# 系統應用之EM安全衛士總結及原始碼分享
阿新 • • 發佈:2019-01-10
如果文章中有不足之處,還請海涵!主要是分享一些思想和原始碼供大家學習,同時該程式通過VS2012開發,其它較低版本開啟可能會出現錯誤。如果覺得該部分內容比較冗餘,可以直接學習原始碼,程式碼中有非常詳細的註釋資訊。
PS:因為自己小名東山(Eastmountain),所以CSDN叫Eastmount,故名EM安全衛士。哈哈,仿造著360的介面也是當時覺得比較好玩。
其功能主要分為六個部分,具體對應如下:清除上網痕跡模組(CleanIE.cs)、辦公文件記錄清除模組(CleanWord.cs)、檔案簡單刪除\清空回收站模組(CleanRecycle.cs)、USB痕跡清除模組(CleanU.cs)、最近檔案使用記錄清除模組(CleanRecent.cs)和檔案粉碎模組(CleanFile.cs)。這些功能都是根據畢設要求完成的。
同時OpaqueCommand.cs和MyOpaqueLayer.cs是透明罩的效果,就是當選中某部分功能時,介面就會新增透明罩效果;而通過Pancel控制元件實現點選不同圖示顯示不同的功能介面的效果。
其中該部分你可以學到的知識包括:
C# 系統應用之透明罩MyOpaqueLayer實現360介面陰影效果
C# 系統應用之使用Pancel控制元件同一窗體切換頁面
C# 系統應用之無標題窗體移動的兩種方法
C# 系統應用之窗體最小化至工作列及常用操作
如上圖所示是獲取IE瀏覽器的瀏覽歷史記錄,同時點選“獲取位址列網址”可以獲取瀏覽器輸入過的網址資訊,選中左邊的清楚IE可以實現清楚瀏覽器的痕跡資訊,它是多選的清除。
其中CleanIE.cs的程式碼佈局如下圖所示:
這部分也是一個技術難點,由於微軟沒有開源很多內容都需要自己去學習,同時該方面的資料也比較少。從圖中可以看到U盤和行動硬碟的歷史記錄,它是從登錄檔中獲取的,該圖中有兩條資訊。
其中No.2是西部資料的行動硬碟資訊My Passport Ultra,如下圖所示。
其中對應的CleanU.cs程式碼如下圖所示:(由於擔心刪除登錄檔USB資訊會破壞,所以該功能被註釋掉了。詳見程式碼和部落格)
其中新增檔案按鈕如下圖所示,同時能點選按鈕能實現清空回收站的內容:
同樣該部分CleanRecyle.cs程式碼中對應不同按鈕有不同的實現函式,此處不再截圖。
其中該部分你可以學到的知識包括:
C# 系統應用之清空回收站操作
其中CleanRecent.cs程式碼如下圖所示:
PS:該部分存在一個bug,當你獲取最近瀏覽檔案時開啟新的檔案,它會自動新增並且顯示一個檔案多個連線,但是再次點選"獲取"按鈕後可以獲取正確的超連結。
其中在獲取儲存辦公檔案時我是通過靜態目錄實現的,程式碼如下: string dirPath = @"C:\Users\dell\AppData\Roaming\Microsoft\Office\Recent";
因為我的電腦名是Dell,此處建議的方法是獲取Environment計算機的名字實現。
PS:因為自己小名東山(Eastmountain),所以CSDN叫Eastmount,故名EM安全衛士。哈哈,仿造著360的介面也是當時覺得比較好玩。
一. 專案結構及功能介紹
首先介紹該專案的結構如下圖所示: 從圖中可以看到主要由6個功能組成,其中對應的執行效果如下圖所示:其功能主要分為六個部分,具體對應如下:清除上網痕跡模組(CleanIE.cs)、辦公文件記錄清除模組(CleanWord.cs)、檔案簡單刪除\清空回收站模組(CleanRecycle.cs)、USB痕跡清除模組(CleanU.cs)、最近檔案使用記錄清除模組(CleanRecent.cs)和檔案粉碎模組(CleanFile.cs)。這些功能都是根據畢設要求完成的。
同時OpaqueCommand.cs和MyOpaqueLayer.cs是透明罩的效果,就是當選中某部分功能時,介面就會新增透明罩效果;而通過Pancel控制元件實現點選不同圖示顯示不同的功能介面的效果。
其中該部分你可以學到的知識包括:
C# 系統應用之透明罩MyOpaqueLayer實現360介面陰影效果
C# 系統應用之使用Pancel控制元件同一窗體切換頁面
C# 系統應用之無標題窗體移動的兩種方法
C# 系統應用之窗體最小化至工作列及常用操作
二. 清除IE模組
該模組的主要功能是獲取和清除Internet Explorer(簡稱IE)瀏覽器的上網痕跡。當執行軟體進入主介面後,點選“清除IE”的圖示,就可以進入“上網痕跡清除模組”。使用者可以實現3個功能:獲取IE瀏覽器位址列網址並以列表形式顯示、獲取IE瀏覽器最近訪問網站歷史、刪除IE瀏覽器的上網痕跡。如上圖所示是獲取IE瀏覽器的瀏覽歷史記錄,同時點選“獲取位址列網址”可以獲取瀏覽器輸入過的網址資訊,選中左邊的清楚IE可以實現清楚瀏覽器的痕跡資訊,它是多選的清除。
其中CleanIE.cs的程式碼佈局如下圖所示:
三. 清除U盤記錄模組
進入該模組後,點選“檢索資訊”按鈕,將在列表中按順序依次顯示最近使用USB移動儲存介質的資訊,資訊包括:標號、USB名稱、UID標記、路徑資訊、時間資訊;點選“刪除資訊”按鈕,將清除USB最近使用痕跡記錄,並且在此模組中有溫馨提示操作。
這部分也是一個技術難點,由於微軟沒有開源很多內容都需要自己去學習,同時該方面的資料也比較少。從圖中可以看到U盤和行動硬碟的歷史記錄,它是從登錄檔中獲取的,該圖中有兩條資訊。
其中No.2是西部資料的行動硬碟資訊My Passport Ultra,如下圖所示。
其中對應的CleanU.cs程式碼如下圖所示:(由於擔心刪除登錄檔USB資訊會破壞,所以該功能被註釋掉了。詳見程式碼和部落格)
四. 檔案簡單刪除及清空回收站模組
進入該模組後,點選“新增檔案”按鈕,會彈出一個“開啟”對話方塊,使用者可以根據自己的需要選擇要刪除的檔案,選中的檔案會新增至列表中;當點選“back”按鈕後,會清空新增的所有檔案,使用者需要再次選擇;當點選“刪除檔案”時,會刪除列表中新增的檔案;當點選“清空回收站”時,會清空每個磁碟分割槽中的回收站檔案,並且此模組中將有溫馨提示使用者操作結果。
其中新增檔案按鈕如下圖所示,同時能點選按鈕能實現清空回收站的內容:
同樣該部分CleanRecyle.cs程式碼中對應不同按鈕有不同的實現函式,此處不再截圖。
其中該部分你可以學到的知識包括:
C# 系統應用之清空回收站操作
五. 清除最近使用檔案痕跡模組
進入該模組時,當用戶點選“檢視最近瀏覽檔案路徑”按鈕時,將在列表欄中顯示Windows系統最近訪問過的文件記錄,並在“共獲取/清除檔案”欄中顯示獲取的數量;當點選“獲取位址列最近訪問檔案”按鈕時,將在列表欄中顯示Windows系統位址列中最近訪問檔案的記錄,並在“共獲取/清除檔案”欄中顯示獲取檔案的數量;當點選“刪除最近瀏覽檔案資訊”按鈕時,將清空Windows系統最近訪問的檔案和Windows系統位址列中記錄最近訪問文件的記錄。
其中CleanRecent.cs程式碼如下圖所示:
PS:該部分存在一個bug,當你獲取最近瀏覽檔案時開啟新的檔案,它會自動新增並且顯示一個檔案多個連線,但是再次點選"獲取"按鈕後可以獲取正確的超連結。
六. 清除Word痕跡模組
進入該模組後,點選按鈕“獲取office最近使用文件”可以實現獲取微軟offcie辦公軟體最近使用文件記錄,其中包括word、ppt、excel等型別文件,並以列表形式分塊顯示;點選“清除office最近使用文件”可以實現清除office最近訪問文件的記錄,並彈出對話方塊提示刪除操作。其中在獲取儲存辦公檔案時我是通過靜態目錄實現的,程式碼如下: string dirPath = @"C:\Users\dell\AppData\Roaming\Microsoft\Office\Recent";
因為我的電腦名是Dell,此處建議的方法是獲取Environment計算機的名字實現。