检测Windows资源管理器复制操作

时间:2009-10-18 17:11:08

标签: c# .net delphi winapi

在Windows资源管理器中是否有任何方法可以检测到复制操作。

有点像SuperCopier:SuperCopier Website

和操作中涉及的日志文件?这样的?

我浏览过Supercopier代码,找不到处理检测复制操作的部分,因为我在Delphi中不流畅。

P.S:他们似乎正在使用Shell扩展......但不确定。

4 个答案:

答案 0 :(得分:10)

是的,你可以。

您必须实施必须shell extensionhook the file copy operation。有很多例子说明如何使用C ++(使用本机Win32 API)以及使用C#或其他.NET框架语言来完成这些工作。我相信你也可以使用Delphi,但我不知道调用Win32 API所涉及的细节。

这是一篇详细介绍implementation of a simple shell extension in C#

的文章

当然,您可能还想查看Windows文件I / O过滤器,但它们只允许您观察文件操作,如创建,复制,更改或删除。在.NET中创建文件I / O过滤器使用System.IO.FileSystemWatcher class是微不足道的,如果您只想检测日志这样的文件复制操作,它可能是所有你需要做的。

注意如果您决定在C#中实现shell扩展,您应该知道它只能在已安装.NET框架的操作系统上运行(您用于创建.NET框架的版本)虽然大多数人现在至少拥有.NET 1.1和2.0 ..

答案 1 :(得分:6)

创建复制钩子shell扩展的示例可以在安装delphi文件夹\ Demos \ ActiveX \ ShellExt \ copyhook.dpr

中找到

这里还有另一个例子

再见。

答案 2 :(得分:3)

您不需要任何Shell扩展 你只需要挂钩Shell apis。

答案 3 :(得分:0)

检测Windows资源管理器的最简单方法是检查Clipboard。当然它在拖放案例,mcd命令或TotalCommander中不起作用。