最近遇到一个项目在项目之中想监测一个文件夹里面文件的变化情况另外想做成开机启动并且能够提醒客户便于客户做出相应的动作
在网上搜集了不少的东西对这个我这个东西起了不少的作用但是总是零零碎碎的最后还是跌跌撞撞的写出来了测试了一下还行本人本着互联网的互助原则将这个小东西放在网上希望能对大家有一个抛砖引玉的作用同时也希望大家能多提意见!呵呵…转入正题吧
在网上搜索了一下网站是一个老外的东西还是比较好用但是源代码没能下载下来!嘿嘿…可能点背所以就下决心自给自足了
其实程序的核心类就的一个控件 但是当时没有发现做完以后有一种被捉弄的感觉呵呵…大家仅供借鑒!
本人在程序里面没有直接用控件代码如下
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做消息(文件夹变动消息)提示当然这些都是一些小把戏大家应该比我懂得多我就不献丑了现在就讲运行的结果展示一下
这是启动界面
)thiswidth=;>
上面是软件的启动界面当然上面有我的QQ以及邮箱大家有什么指教的这些联系方式一般都是可以找到的除非我睡觉呵呵…
这是程序的程序开始监测的结果
image title= onmousewheel=javascript:return big(this) border= alt= src=http://imgeducitycn/img_///jpg width= onload=javascript:if(thiswidth>)thiswidth=;>
上面是运行效果下面是最小化到托盘以及消息提示如下图展示
image title= onmousewheel=javascript:return big(this) border= alt= src=http://imgeducitycn/img_///jpg onload=javascript:if(thiswidth>)thiswidth=;> 红色矩形的就是运行的检测程序代码程序里面很全面
原文链接