我希望有一个在后台运行的程序,监听任何文件传输,然后取消资源管理器的文件传输机制,并启动它自己。
我该怎么做?是否有一些我可以消费的dll?
为什么?
* 通过文件传输,我的意思是通过拖放来移动/复制文件/文件夹,但我只关心从磁盘到磁盘的文件传输,而不是从互联网传输。
答案 0 :(得分:5)
定义“文件传输”。
你想嗅探ftp,http请求吗?资源管理器也复制?仅限本地或在网络上?
我认为这必然会变得脆弱。你最好的选择是,如果探险家让你通过shell extension挂钩文件复制操作。我不确定是否可以做到。
请参阅The Complete Idiot's Guide to Writing Shell Extensions作为起点。
另见http://msdn.microsoft.com/en-us/library/cc144063(v=vs.85).aspx
答案 1 :(得分:3)
在我开始之前:这将会很糟糕,但不过:
对于Vista / 7:
你需要挂钩(Hooking)
CoCreateInstance至IFileOperation,然后从那里更改所需内容。
然而,这不适用于XP,并且可能非常脆弱,可以在某些PC上运行而不在其他PC上运行,因为从API的角度来看,有数百种方法可以在Windows上执行相同的操作。