如何在Windows下实时监视系统共享文件夹的变化

rel="File-List" href="file:///C:%5CDOCUME%7E1%5Clixiao%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C08%5Cclip_filelist.xml">

最近在做一个模块时,被要求要实现实时监视本机共享文件夹变化的功能。
   
刚开始还真一下子想不出什么好的办法,心想,实在不行就不停调用NetShareEnum,把枚举的结果和之前的比对,如果不同就代表发生了变化。不过,这个方法过于SB,完全不符合偶的风格嘛。
    
泡上一杯咖啡,放进KarajanCD,放松心情,故作沉思状...... ^ ^
   
突然脑子一开窍,对了,Windows应该会把共享文件夹的变化实时记录下来,放在某个地方的吧。呵呵,这个地方不用说也知道一定是注册表了。在注册表中一顿狂搜,还真被我找到了。

HKLM/SYSTEM/CurrentControlSet/Services/lanmanserver/Shares

接下来就easy了,先创建一个事件,然后调用RegNotifyChangeKeyValue来监视上面那个子键的变化,最后调用WaitForSingleObject来等待我们创建的事件对象。当系统中有共享文件夹信息发生变化时,系统就会重新设置子键下的值,而我们的WaitForSingleObject自然也会接收到事件,坐享其成,呵呵。

顺便提一下,Shares下的Security子键保存的是共享文件夹的访问权限的值,这里如果想一并监视的话,就把RegNotifyChangeKeyValuebWatchSubtree参数设成TRUE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值