阅读:1179回复:0
请问 资源管理器是怎么枚举文件的?
我查了些资料,大体是说资源管理器用的IShellFolder,我也下过断点,资源管理器要调用FindNextFile,却不会调用FindFirstFile.
主要是这样的,Z: 本身指定 \deivice\harddiskvolume2 ,我把他重新用DefineDosDevice到了 111,这是一个不存在的地方,因此所有程序访问Z:都会失败,而我又想让某个特定的程序 比如资源管理器 在访问Z:的时候,能正常访问,我的做法是Hook了资源管理器的CreateFile,FindFirstFile,CreateDirectory等等,把这些里面的Z:替换成了\deivice\harddiskvolume2,可是却达不到预期的效果,因为他枚举文件或目录时,不调用这几个函数. 我不想做全局的HOOK,我看了下IShell的,似乎如果做Shell扩展也是全局的。请问有人知道有什么好办法吗? |
|