删除一个文件,,拦截DeleteFile没有作用
同样的,创建一个文件,拦截CreateFile也没有作用
对于普通的删除,是把文件移动到回收站,那么调用的API又是什么呢?没有MoveFile这个API

解决方案 »

  1.   

    Up
    上面错了一个
    有MOveFile
    拦截CreateFile,在MyCreateFile中直接返回False
    还是可以创建~~~~
      

  2.   

    program del;
    uses ShellApi;
    { 利用ShellApi中: function SHFileOperation(const lpFileOp: TSHFileOpStruct): Integer; stdcall; }
    Var T:TSHFileOpStruct;
    P:String;
    begin
    P:='C:\Windows\System\EL_CONTROL.CPL';
    With T do
    Begin
    Wnd:=0;
    wFunc:=FO_DELETE;
    pFrom:=Pchar(P);
    fFlags:=FOF_ALLOWUNDO
    End;
    SHFileOperation(T);
    End.注意:
    1. 给出文件的绝对路径名,否则可能不能恢复;
    2. MS的文档说对于多个文件,每个文件名必须被#)字符分隔,而整个字符串必须用两个#0结束。