Chinaunix首页 | 论坛 | 博客
  • 博客访问: 645580
  • 博文数量: 245
  • 博客积分: 4732
  • 博客等级: 上校
  • 技术积分: 3102
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-02 14:31
文章分类

全部博文(245)

文章存档

2012年(1)

2011年(42)

2010年(132)

2009年(59)

2008年(11)

我的朋友

分类: WINDOWS

2010-09-08 16:51:31

 
 
 如何在Windows下实时监视系统共享文件夹的变化 收藏
最近在做一个模块时,被要求要实现实时监视本机共享文件夹变化的功能。
    刚开始还真一下子想不出什么好的办法,心想,实在不行就不停调用NetShareEnum,把枚举的结果和之前的比对,如果不同就代表发生了变化。不过,这个方法过于SB,完全不符合偶的风格嘛。
    泡上一杯咖啡,放进Karajan的CD,放松心情,故作沉思状...... ^ ^
    突然脑子一开窍,对了,Windows应该会把共享文件夹的变化实时记录下来,放在某个地方的吧。呵呵,这个地方不用说也知道一定是注册表了。在注册表中一顿狂搜,还真被我找到了。
HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares
接下来就easy了,先创建一个事件,然后调用RegNotifyChangeKeyValue来监视上面那个子键的变化,最后调用WaitForSingleObject来等待我们创建的事件对象。当系统中有共享文件夹信息发生变化时,系统就会重新设置子键下的值,而我们的WaitForSingleObject自然也会接收到事件,坐享其成,呵呵。
顺便提一下,Shares下的Security子键保存的是共享文件夹的访问权限的值,这里如果想一并监视的话,就把RegNotifyChangeKeyValue的bWatchSubtree参数设成TRUE。
 
 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lxcsyh/archive
 
 
阅读(1828) | 评论(0) | 转发(0) |
0

上一篇:难眠

下一篇:张宴博客

给主人留下些什么吧!~~