在Windows资源管理器中是否有任何方法可以检测到复制操作。
有点像SuperCopier:SuperCopier Website?
和操作中涉及的日志文件?这样的?
我浏览过Supercopier代码,找不到处理检测复制操作的部分,因为我在Delphi中不流畅。
P.S:他们似乎正在使用Shell扩展......但不确定。
答案 0 :(得分:10)
是的,你可以。
您必须实施必须shell extension的hook 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中不起作用。