最近遇到一個項目在項目之中想監測一個文件夾裡面文件的變化情況另外想做成開機啟動並且能夠提醒客戶便於客戶做出相應的動作
在網上搜集了不少的東西對這個我這個東西起了不少的作用但是總是零零碎碎的最後還是跌跌撞撞的寫出來了測試了一下還行本人本著互聯網的互助原則將這個小東西放在網上希望能對大家有一個拋磚引玉的作用同時也希望大家能多提意見!呵呵…轉入正題吧
在網上搜索了一下網站是一個老外的東西還是比較好用但是源代碼沒能下載下來!嘿嘿…可能點背所以就下決心自給自足了
其實程序的核心類就的一個控件 但是當時沒有發現做完以後有一種被捉弄的感覺呵呵…大家僅供借鑒!
本人在程序裡面沒有直接用控件代碼如下
public static FileSystemWatcher watcher = new FileSystemWatcher(); 當然問題的解決這樣未免有點太輕松了!接下來就是為對watcher 的事件捕獲並進行相應處理代碼如下
watcherChanged += new FileSystemEventHandler(OnChanged);
watcherCreated += new FileSystemEventHandler(OnChanged);
watcherDeleted += new FileSystemEventHandler(OnChanged);
watcherRenamed += new RenamedEventHandler(OnRenamed);
相信看我問東東的同仁們到現在也就知道怎麼做了再次不再贅述另外就是由於文件夾的檢測所以會觸及到系統安全所以在程序之中程序的權限設置就顯得很有必要在程序之中加入下面的代碼能有效地避免程序被誤認為是非法操作
[PermissionSetAttribute(SecurityAction
Demand
Name =
FullTrust
)] 到此
整個程序的主要功能更就完了
另外就是一個開機啟動的設置和取消
另外就是監測報告!這些問題
開機啟動的設置和取消是windows的注冊表編程
也就不賣關子了
直接給大家代碼吧
private void AutoRun_CheckedChanged(object sender
EventArgs e)
{
if (AutoRun
Checked)//開機自動啟動
{
try
{
RegistryKey runKey = Registry
LocalMachine
OpenSubKey(@
SOFTWARE\Microsoft\Windows\CurrentVersion\Run
true);
runKey
SetValue(
文件夾監測
exe
System
Windows
Forms
Application
ExecutablePath);
runKey
Close();
}
catch (IOException)
{
return ;
}
}
else //不開機自動啟動注冊表信息刪除
{
RegistryKey software = Registry
LocalMachine
OpenSubKey(@
SOFTWARE\Microsoft\Windows\CurrentVersion\Run
true);
string[] aimnames = software
GetValueNames();
foreach (string aimKey in aimnames)
{
if (aimKey
Equals(
文件夾監測
exe
))
{
software
DeleteValue(
文件夾監測
exe
) ;
software
Close();
break;
}
}
}
}
這些就是開機啟動的設置以及取消代碼
另外程序可以類似於QQ做消息(文件夾變動消息)提示
當然這些都是一些小把戲
大家應該比我懂得多
我就不獻丑了
現在就講運行的結果展示一下
這是啟動界面
.NET編程免費提供,內容來源於互聯網,本文歸原作者所有。