VC++文件监控之FindFirstChangeNotification的示例分析
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下VC++文件监控之FindFirstChangeNotification的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面
千家信息网最后更新 2025年11月07日VC++文件监控之FindFirstChangeNotification的示例分析
小编给大家分享一下VC++文件监控之FindFirstChangeNotification的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
原因:
因为ReadDirectoryChangesW 上次测试发现不能多级目录监控,
所以尝试用FindFirstChangeNotification来实施文件监控。
关键代码:
CFolderMonitorDlg *dlg = (CFolderMonitorDlg*)lParam; HANDLE hEvent;//监控句柄 CString path ;//监控目录 GetCurrentDirectory(MAX_PATH,path.GetBuffer(MAX_PATH+1)); hEvent = FindFirstChangeNotification(path,TRUE,FILE_NOTIFY_CHANGE_FILE_NAME| //查看指定目录下任何文件名的改变 FILE_NOTIFY_CHANGE_DIR_NAME| //查看指定目录下任何目录名的改变 FILE_NOTIFY_CHANGE_SIZE| //查看指定文件大小的改变 FILE_NOTIFY_CHANGE_ATTRIBUTES);//查看指定目录下文件属性的改变 if (hEvent == INVALID_HANDLE_VALUE) { ExitProcess(GetLastError());//获取错误 return 0 ; } while (TRUE)//循环监控 { DWORD nObj = WaitForSingleObject(hEvent,INFINITE);//等待,文件夹任何动作,都返回0,顾不能知道具体动作和具体哪个文件发生了变化 if (nObj) { dlg->m_edit.ReplaceSel("被病毒修改了文件\r\n"); } dlg->m_edit.ReplaceSel("文件发生了变化,具体发生什么变化,无从考证\r\n"); //继续监控 if(FALSE==FindNextChangeNotification(hEvent)) { ExitProcess(GetLastError()); return 0; } } return 0 ;效果图:
以上是"VC++文件监控之FindFirstChangeNotification的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
文件
监控
目录
篇文章
变化
示例
分析
内容
动作
不怎么
代码
关键
原因
句柄
大小
大部分
属性
效果
效果图
文件名
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
焦作软件开发
800G数据库迁移
网络技术和区块链技术区别
手机app 用什么数据库
数据库外文供应商
申通软件开发商
如何把ip地址传给服务器上
python调用数据库数据
月度网络安全总结
工业软件开发技术专业就业前景
网络安全的五个关键要素
银行软件开发中心社招
张店库存管理软件开发
教程服务器
比亚迪网络技术专员
我的世界基岩版服务器默认端口
厦门应用软件开发公司排名
条形码 数据库
软件开发的税
上海很小的软件开发公司
dhcp服务器请求过程
网络工程师能做网络安全方面吗
黄陂计算机软件开发学校
水滤镜软件开发
方舟服务器维修一次是多久
完美5e服务器连接不上
float32 数据库
学习软件开发以后怎么创业
南京软件开发定制怎么收费
可以用qq支付的主题软件开发