日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 系统应用之获取Windows最近使用记录

發布時間:2024/5/28 C# 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 系统应用之获取Windows最近使用记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于畢業設計項目需要刪除Windows最近歷史記錄,這就需要獲取Windows最近歷史記錄 Recent.本文就主要敘述通過C#實現獲取Recent中使用的文件和文件夾.首先聲明該文章主要是結合自己的畢設項目,同時的主要代碼來自Level Up的博客.在此非常感謝該博主,也希望大家學習他的文章: http://www.dotblogs.com.tw/larrynung/archive/2012/09/27/75118.aspx

一.Windows最近歷史記錄

在Windows系統中有Recent Items或Recent這樣的東西存儲最近使用的文件和文件夾的歷史記錄,通過快捷鍵"Windows+R"打開運行輸入"recent"可以打開最近瀏覽文件和文件夾如下圖所示:

當我們瀏覽文件時,它會自動的以快捷的方式存儲歷史記錄,Windows會自動添加到該文件夾下記錄系統最近使用的文件或文件夾,同樣Office、Cookies等都有相對應的Recent.我們可以通過Environment.GetFolderPath(Environment.SpecialFolder.Recent)獲取Windows的Recent最近歷史記錄的位置,我電腦中recent的路徑為 "C:\Users\dell\AppData\Roaming\Microsoft\Windows\Recent".
同時由于該獲取較簡單,就不詳細敘述.補充C#獲取桌面、Recent、我的文檔、我的音樂、Cookies等路徑參考文章http://hi.baidu.com/ysuhy/item/b12a57d3660ccc90270ae7f9

二.遍歷Recent中文件路徑

在遍歷Recent目錄時,遍歷方法參考了Level Up的文章"[C#][VB.NET].NET捷徑(ShortCut)控制"如下圖"dota2.txt"的捷徑(ShortCut),通過目標獲取Recent快捷鍵的原始存放路徑.

這里Level Up作者整理了一個類,通過這個類實現獲取文件原始路徑,右鍵項目"添加"類,代碼如下:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; //Directory 目錄 using System.Reflection; //BindingFlags 枚舉namespace GetPathRecent {public class RecentlyFileHelper{public static string GetShortcutTargetFile(string shortcutFilename){var type = Type.GetTypeFromProgID("WScript.Shell"); //獲取WScript.Shell類型object instance = Activator.CreateInstance(type); //創建該類型實例var result = type.InvokeMember("CreateShortCut", BindingFlags.InvokeMethod, null, instance, new object[] { shortcutFilename });var targetFile = result.GetType().InvokeMember("TargetPath", BindingFlags.GetProperty, null, result, null) as string;return targetFile;}public static IEnumerable<string> GetRecentlyFiles(){var recentFolder = Environment.GetFolderPath(Environment.SpecialFolder.Recent); //獲取Recent路徑return from file in Directory.EnumerateFiles(recentFolder)where Path.GetExtension(file) == ".lnk"select GetShortcutTargetFile(file);}} }

三.顯示路徑listBox1控件中

向Form中添加控件listBox和fileSystemWatcher(監控文件系統更改通知,并在目錄或文件更改時引發事件).具體代碼如下:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace GetPathRecent {public partial class Form1 : Form{public Form1(){InitializeComponent();}//載入Form private void Form1_Load(object sender, EventArgs e){listBox1.Items.Clear(); foreach (var file in RecentlyFileHelper.GetRecentlyFiles()){listBox1.Items.Add(file);}//獲取recent路徑var recentFolder = Environment.GetFolderPath(Environment.SpecialFolder.Recent);fileSystemWatcher1.Path = recentFolder;fileSystemWatcher1.Created += new System.IO.FileSystemEventHandler(fileSystemWatcher1_Created);}//當在指定Path(即recent路徑)中創建文件和目錄時增加ShortCutprivate void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e){listBox1.Items.Add(RecentlyFileHelper.GetShortcutTargetFile(e.FullPath));}} }

四.運行結果

顯示Recent中Windows最近瀏覽的文件及文件夾原始路徑運行結果如下:

其中與"一.Windows歷史記錄"中圖對應,亦可以發現dota2.txt是對應捷徑"G:\dota2\dota2.txt"證明了文章.到此,我們就獲取到了Windows的最近歷史記錄,要實現清除Recent的歷史記錄也非常容易,同時清除指定U盤中的文件記錄也可以實現.同樣如果想刪除Office最近歷史記錄路徑為"C:\Users\dell\AppData\Roaming\Microsoft\Office\Recent".如下圖所示:

五.總結及感謝

該文章主要是結合自己的畢業設計中U盤清除Windows歷史記錄、Office歷史記錄設計完成,同時查看了很多資料和書籍,其中給予我幫助最大的是level up的文章,由于這方面的資料較少,所以彌足珍貴.同時聲明該文章的代碼主要參考了Level Up的博客http://www.dotblogs.com.tw/larrynung/archive/2012/09/27/75118.aspx
最后,希望文章對大家有所幫助,同時希望大家去關注上面提到博主的文章,他寫了很多文章,都非常有用,無論是技術性還是理論性.如果該篇文章中有錯誤或不足之處,請大家海涵!
(By:Eastmount 2014-1-19 夜4點http://blog.csdn.net/eastmount)

總結

以上是生活随笔為你收集整理的C# 系统应用之获取Windows最近使用记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。