Windows 如何跟踪系统范围的文件操作(用于撤消/重做)?

Windows 如何跟踪系统范围的文件操作(用于撤消/重做)?,windows,delphi,undo,redo,Windows,Delphi,Undo,Redo,当我从程序中复制/删除文件时,我可以记录操作并执行撤消和重做 但我希望像Explorer一样跟踪整个系统的复制/删除过程,这样即使从其他进程(如Explorer)执行了删除过程,我也可以执行撤消。为此,您必须使用Shellapi,而不是sysutils的一组标准文件函数。如果使用复制/删除/剪切,即使在程序中进行了操作,也可以从资源管理器中使用“撤消重做”。您可以使用Windows重新标记问题,并在标题中添加“Windows”。你的问题目前不是很清楚,也不够准确。好的,我已经添加了>Window

当我从程序中复制/删除文件时,我可以记录操作并执行撤消和重做


但我希望像Explorer一样跟踪整个系统的复制/删除过程,这样即使从其他进程(如Explorer)执行了删除过程,我也可以执行撤消。

为此,您必须使用Shellapi,而不是sysutils的一组标准文件函数。如果使用复制/删除/剪切,即使在程序中进行了操作,也可以从资源管理器中使用“撤消重做”。

您可以使用Windows重新标记问题,并在标题中添加“Windows”。你的问题目前不是很清楚,也不够准确。好的,我已经添加了>Windows Vista的Windows APIAs,有一个系统范围的文件操作撤消列表。该列表由资源管理器管理,因为它是shell。要自己管理列表,您必须将Explorer替换为shell。与其自己管理列表,不如允许您撤消和重做操作,只访问资源管理器已经为您维护的同一列表。kernel32 windows.pas中有ReadDirectoryChanges。我想知道这是否能用于你的目的。这里的示例项目delphi.icm.edu.pl/ftp/d20free/dirmon.zipHow您会使用ShellExecuteEx进行剪切/复制/删除吗?而是让他们在这里做自己的工作-标准CopyFilesW等函数以某种方式记录在某个列表中,以后资源管理器可以使用Undo/Redo调用该列表。我想知道Explorer使用哪种API调用来实现这一点。@TLama:实际上,作为一个匿名用户,我在这里的第一个问题是关于这个……所以有可能,通过使用动词“copy”等,cf这对我没有帮助-我已经在数百个地方使用了CopyFile和其他API函数-我需要其他东西>当我从程序中删除文件时,Windows可以执行撤消,这意味着它记录了DeleteFile调用并可以撤消callI我没有建议您使用CopyFile,我知道您已经使用了它。