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

Att*_*lah 5 .net c# delphi winapi

有没有办法在Windows资源管理器中检测复制操作.

有点像SuperCopier:SuperCopier网站

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

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

PS:看起来他们正在使用Shell扩展......但不确定.

Mik*_*scu 10

是的你可以.

您必须实现一个必须挂钩文件复制操作shell扩展.有很多例子说明如何使用C++(使用本机Win32 API)以及使用C#或其他.NET框架语言来完成这些工作.我相信你也可以使用Delphi,但我不知道进行Win32 API调用所涉及的细节.

这篇文章详细介绍了C#中简单shell扩展实现.

当然,您可能还需要查看Windows文件I/O过滤器,尽管它们只允许您观察文件操作,如创建,复制,更改或删除.在.NET中创建文件I/O过滤器使用System.IO.FileSystemWatcher类是微不足道的,如果您只想检测记录此类文件复制操作,则可能需要执行此操作.

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

  • 在.NET中实现Shell Ext是一个禁忌的http://blogs.msdn.com/junfeng/archive/2005/11/18/494572.aspx.您需要在.NET进程中使用瘦C++包装器+ IPC. (2认同)
  • 它是++禁止的,因为一次只能将一个版本的.NET框架加载到进程中.为shell扩展选择.NET 2.x将禁止任何使用.NET 1.x或3.x的其他人加载.并且MS不会将*任何*Windows内核迁移到.NET - .NET是Windows核心的++ top ++上的附加组件(IOW,你的依赖项被反转 - .NET依赖于核心,而不是其他方式). (2认同)

RRU*_*RUZ 6

可以在安装delphi文件夹\ Demos\ActiveX\ShellExt\copyhook.dpr中找到创建复制挂钩外壳扩展的示例.

这里有另外一个例子

再见.