ICopyHook监控文件夹操作 文件操作监控系列之一

来源:互联网 发布:plugins.js是什么 编辑:程序博客网 时间:2024/06/05 02:10

项目中有一项需求对文件的运动轨迹进行记录,于是在网上找了一些资料,汇总,准备一个个试一下,ICopyHook是网上说的比较多的,原理是shell扩展,当文件夹有删除、复制、移动、重命名时候会执行ICopyHook::CopyCallback接口,可以在这个回调函数中做一些处理。但是这个最终不符合我的要求,因为只能监控到文件夹这一级别,对单文件无法监控到(可能可以,需要配合其他notify API)。

搞这个也是费了一些时间,网上大部分代码是源自一个叫老妖的人的博客上写的,比较老了,编译不了。

最后还是在codeproject上找到的,但是那哥们也语焉不详,费了一些周折东拼西凑才使最后的shell extension dll运转起来。

源码:http://www.codeproject.com/KB/atl/CopyHook.aspx?fid=58538&df=90&mpp=25&noise=3&prof=False&sort=Position&view=Quick&fr=1#xx0xx

Registration这个步骤上,HKEY_CLASSES_ROOT\Directory\ShellEx\CopyHookHandlers这个键下建一个子键,名字随便,比如说是copyhook,然后把工程中的CLSID值{CAE41CE0-1855-4985-A332-7D83704A45B6}填上去,然后在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved建一个字符串键值,然后CLSID填入即可,数值项写copyhook。

   然后运行regsvr32.exe C:\CopyHook\ReleaseUMinDependency\CopyHook.dll(dll路径),重启explorer.exe(不知道为什么要重启。。。但是不重启没作用),然后就可以看到效果了。


原创粉丝点击