熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

.NET不用控件實現文件夾監測系統

2013-11-13 09:49:42  來源: .NET編程 

  最近遇到一個項目在項目之中想監測一個文件夾裡面文件的變化情況另外想做成開機啟動並且能夠提醒客戶便於客戶做出相應的動作
    在網上搜集了不少的東西對這個我這個東西起了不少的作用但是總是零零碎碎的最後還是跌跌撞撞的寫出來了測試了一下還行本人本著互聯網的互助原則將這個小東西放在網上希望能對大家有一個拋磚引玉的作用同時也希望大家能多提意見!呵呵…轉入正題吧
    在網上搜索了一下網站是一個老外的東西還是比較好用但是源代碼沒能下載下來!嘿嘿…可能點背所以就下決心自給自足了
    其實程序的核心類就的一個控件 但是當時沒有發現做完以後有一種被捉弄的感覺呵呵…大家僅供借鑒!
    本人在程序裡面沒有直接用控件代碼如下
    public static FileSystemWatcher watcher = new FileSystemWatcher(); 當然問題的解決這樣未免有點太輕松了!接下來就是為對watcher 的事件捕獲並進行相應處理代碼如下
    watcherChanged += new FileSystemEventHandler(OnChanged);
    watcherCreated += new FileSystemEventHandler(OnChanged);
    watcherDeleted += new FileSystemEventHandler(OnChanged);
    watcherRenamed += new RenamedEventHandler(OnRenamed);
    相信看我問東東的同仁們到現在也就知道怎麼做了再次不再贅述另外就是由於文件夾的檢測所以會觸及到系統安全所以在程序之中程序的權限設置就顯得很有必要在程序之中加入下面的代碼能有效地避免程序被誤認為是非法操作


    [PermissionSetAttribute(SecurityActionDemand Name = FullTrust)]  到此整個程序的主要功能更就完了另外就是一個開機啟動的設置和取消另外就是監測報告!這些問題開機啟動的設置和取消是windows的注冊表編程也就不賣關子了直接給大家代碼吧
    private void AutoRun_CheckedChanged(object sender EventArgs e)
    {
    if (AutoRunChecked)//開機自動啟動
    {
    try
    {
    RegistryKey runKey = RegistryLocalMachineOpenSubKey(@SOFTWARE\Microsoft\Windows\CurrentVersion\Run true);
    runKeySetValue(文件夾監測exe SystemWindowsFormsApplicationExecutablePath);
    runKeyClose();
    }
    catch (IOException)
    {
    return ;
    }
    }
    else //不開機自動啟動注冊表信息刪除
    {
    RegistryKey software = RegistryLocalMachineOpenSubKey(@SOFTWARE\Microsoft\Windows\CurrentVersion\Run true);
    string[] aimnames = softwareGetValueNames();
    foreach (string aimKey in aimnames)
    {
    if (aimKeyEquals(文件夾監測exe))
    {
    softwareDeleteValue(文件夾監測exe) ;
    softwareClose();
    break;
    }
    }
    }
    }


    這些就是開機啟動的設置以及取消代碼另外程序可以類似於QQ做消息(文件夾變動消息)提示當然這些都是一些小把戲大家應該比我懂得多我就不獻丑了現在就講運行的結果展示一下

  這是啟動界面

  2.NET編程免費提供,內容來源於互聯網,本文歸原作者所有。

推薦文章
Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.