用FindFirstChangeNotification()和FindCloseChangeNotification(),我不能提供程序给你,这是由于版权属于别人,不好意思那,你查madn吧。
good luck u
good luck u
解决方案 »
- C# 调用 vc++写的com组件,双击调用和cmd命令调用结果居然不同!
- MS Visual C++6.0正版软件。一名用户使用权限版本,售价可以接受。请进。
- 如何在dialogbar中的static中画图
- 文档图像的倾斜校正
- 让我想了很久的问题:要求用CS方式,多线程的TCP/IP通信程序,要求能给我做个实际例子,给我例子代码,再给40分
- 请教各位最简单的一个问题,怎样在对话框工程中加入ToolBar???谢谢
- 多线程执行顺序问题
- 关于ADO连SQL Server的delete的问题
- UltraVNC 里怎么给下面这个控件添加快捷键
- directshow h264解码显示异常
- 三层开发中的数据联接问题
- 关于COM的ClsID,请高手一定指教。高分伺候。
FindFirstChangeNotification( );
FindNextChangeNotification( );
WaitForSingleObject( );
其中FindFirstChangeNotification(lpzpath,fwatchsubtree,fdwfilter)中的lpzpath表示要监视的路径名,fwatchsubtree判断是否查看子目录,fdwfilter为要监视的事件,函数执行成功后返回一个句柄。
参数fdwfilter取值及其含义如下:
FILE_NOTIFY_CHANGE_FILE_NAME 查看指定目录下任何文件名的改变
FILE_NOTIFY_CHANGE_DIR_NAME 查看指定目录下任何目录名的改变
FILE_NOTIFY_CHANGE_SIZE 查看指定目录下文件大小的改变
FILE_NOTIFY_CHANGE_ATTRIBUTES 查看指定目录下文件属性的改变
FindNextChangeNotification(hchange),hchange为FindFirstChangenNotification返回的句柄,其作用是请求系统在下次检测到相应改变时发出改变通知消息句柄。当函数成功返回后,应用程序可通过WaitForMultipleObjects或WaitfForSingleObject来等待发生改变的通知。 WaitForSingleObject(hchange,dwmilliseconds)中hchange为FindFirstChangeNotification 返回的句柄,dwmilliseconds为等待时间值,指定等待完成需要的时间,单位为毫秒。该值为-1时表示时间无限长。最好在结束监视程序之前先用FindCloseChangeNotification(hchange)来关闭句柄。
下面给出一个简单的实例,其功能就是监视c:\pwin98目录下是否有文件发生变化。一旦有重命名、创建或删除情况发生时,通过Edit控件给出提示。
DWORD dwWaitStatus;
HANDLE dwChangeHandle; //返回通知的句柄
dwChangeHandle=FindFirstChangeNotification(
“C:\\PWIN98”,false,FILE_NOTIFY_CHANGE_FILE_NAME); //设置返回通知的句柄
if(dwChangeHandle==INVALID_HANDLE_VALUE)
//判断是否设置成功
ExitProcess(GetLastError());
while(true){ //设置循环,监视是否有
dwWaitStatus=WaitForSingleObject(dwChangeHandle,-1); //通知返回
if(dwWaitStatus==0){
MessageBox(NULL,"Notification",“Something Changed”,MB_OK); //给出提示
FindCloseChangeNotification(dwcChangeHandle); //关闭句柄
exit(EXIT_SUCCESS); //退出程序
}
}
此例说明如何监视硬盘中文件变化,对于注册表,则有函数RegNotifyChangeKeyValue()可以实现类似功能。
http://www.csdn.net/expert/Topic/7167.shtm
看看吧,这里的精华版还是很有东西的