查看: 9639|回复: 0
打印 上一主题 下一主题

.NET不用控件实现文件夹监测系统

[复制链接]
跳转到指定楼层
1#
发表于 2011-5-4 15:52:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
最近遇到一个项目,在项目之中想监测一个文件夹里面文件的变化情况,另外想做成开机启动,并且能够提醒客户,便于客户做出相应的动作。

在网上搜集了不少的东西,对这个我这个东西起了不少的作用,但是总是零零碎碎的,最后还是跌跌撞撞的写出来了,测试了一下还行,本人本着互联网的互助原则,将这个小东西放在网上,希望能对大家有一个抛砖引玉的作用,同时也希望大家能多提意见!呵呵…转入正题吧。

在网上搜索了一下http://www.hackchina.com/cont/27825网站是一个老外的东西,还是比较好用,但是源代码没能下载下来!嘿嘿…可能点背。所以就下决心自给自足了。

其实程序的核心类就是.net的一个控件 ,但是当时没有发现,做完以后有一种被捉弄的感觉,呵呵…大家仅供借鉴!

本人在程序里面没有直接用控件,代码如下:


public static FileSystemWatcher watcher = new FileSystemWatcher();  



当然问题的解决这样未免有点太轻松了!接下来就是为对watcher 的事件捕获并进行相应处理,代码如下:


watcher.Changed += new FileSystemEventHandler(OnChanged);   
watcher.Created += new FileSystemEventHandler(OnChanged);   
watcher.Deleted += new FileSystemEventHandler(OnChanged);   
watcher.Renamed += new RenamedEventHandler(OnRenamed);   



相信看我问东东的同仁们到现在也就知道怎么做了,再次不再赘述。另外就是由于文件夹的检测所以会触及到系统安全,所以在程序之中程序的权限设置就显得很有必要,在程序之中加入下面的代码,能有效地避免程序被误认为是非法操作。


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做消息(文件夹变动消息)提示,当然这些都是一些小把戏,大家应该比我懂得多,我就不献丑了,现在就讲运行的结果展示一下:

这是启动界面:



上面是软件的启动界面,当然上面有我的QQ以及邮箱,大家有什么指教的,这些联系方式一般都是可以找到的,除非我睡觉,呵呵…

这是程序的程序开始监测的结果:



上面是运行效果,下面是最小化到托盘、以及消息提示如下图展示:

红色矩形的就是运行的检测程序。代码程序里面很全面。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州维博网络(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:企业网站建设、网站程序开发、手机APP客户端、平面设计、主机域名、虚拟空间、网站推广、网站优化、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2024 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表