天天看點

C# 系統應用之擷取IE浏覽記錄和IE位址欄輸入網址

該文章是“個人電腦曆史記錄清除軟體”項目的系統應用系列文章.

前文說過在windows中ie曆史記錄的位置為:"c:\users\dell\appdata\local\microsoft\windows\history",曆史記錄是存放最近時間通路過的網站位址,它以時間和站點存儲.如下圖所示:

C# 系統應用之擷取IE浏覽記錄和IE位址欄輸入網址

那麼,我們可以通過environment.getfolderpath(environment.specialfolder.history)擷取ie曆史記錄.

其中environment.getfolderpath(environment.specialfolder.xxx)用于檢索系統特殊檔案夾的路徑,常見有:

(1).history 用作 internet 曆史記錄項的公共儲存庫的目錄

(2).cookies 用作 internet cookie 的公共儲存庫的目錄

(3).internetcache 用作 internet 臨時檔案的公共儲存庫的目錄

(4).recent 包含使用者最近使用過的文檔的目錄

(5).mypictures “my pictures”檔案夾

(6).mydocuments “我的電腦”檔案夾

(7).programfiles “program files”目錄

但是運作它進行删除delete操作或擷取操作時,它常常會有系統檔案,很多檔案不能通路到.在删除中就會遇到"該檔案正在另一程序使用,是以該程序無法通路此檔案"或"檔案通路被拒絕".而采用rundll32.exe調用win32 api函數shellexecute()執行實作的.同樣,使用它擷取得到的曆史記錄如下圖所示.顯然不是我想要的結果,同時在清除cookies後還是能顯示很多cookies資訊.猜測是google、360等浏覽器的?

C# 系統應用之擷取IE浏覽記錄和IE位址欄輸入網址

打開運作(ctrl+r)并輸入"regedit"打開系統資料庫,在"hkey_current_user\software\microsoft\internet explorer\typedurls"下可以看見最近使用ie浏覽器在位址欄輸入的網址,如下圖所示:

C# 系統應用之擷取IE浏覽記錄和IE位址欄輸入網址

其中對應的ie浏覽器如下圖所示:

C# 系統應用之擷取IE浏覽記錄和IE位址欄輸入網址

通過下面的代碼,借助registrykey系統資料庫頂級節點和擷取該路徑下的檔案,即可顯示相應的顯示ie浏覽器的位址欄網址.注意registrykey需要引用命名空間using microsoft.win32.

運作結果如下圖所示:

C# 系統應用之擷取IE浏覽記錄和IE位址欄輸入網址

經過我的處理後運作結果如下圖所示:

C# 系統應用之擷取IE浏覽記錄和IE位址欄輸入網址

但是我也遇到了一個問題,就是它的ftlastvisited(the last time the user visited this page)存儲該網頁最後通路時間,想通過該時間進行擷取今天通路的或排序輸出前100.但是擷取該時間時總輸出錯誤,同時将filetime轉換成systemtime或time_t都沒成功.希望以後能解決.

最後該文章主要是結合自己的實際東西講解,如果你剛好遇到類似的問題就可能對你有所幫助.同時如果在文章中遇到錯誤或不足的地方,請海涵!最重要的是感謝上面提到的部落客.希望能把擷取時間等問題也解決.請尊重作者的勞動果實,勿噴!!!