小弟今天接了一个任务,写一个小程序,让程序运行后所有的删除操作都不能进行。接到任务的第一时间,我想到了HOOK,但是我对HOOK不是很熟,去网上看了很多,键盘的部分解决了(拦截del和delete),但是还可以通过鼠标右键,“删除”按钮来删除文件,还可以通的直接把文件拉到回收站删除。请问一下,各位老大,鼠标的这部分怎么拦截,谢谢了!

解决方案 »

  1.   

    直接API hook “DeleteFile”好了
      

  2.   

    Windows Shell扩展编程完全指南 上边有添加菜单 希望对你有帮助 
    帮up下吧
      

  3.   

    Hook DeleteFile可以禁止删除,至于删除到回收站,可以试试Hook MoveFile。
    文件改变通知是改变之后“通知”的,只能知道改变,却无法阻止改变。
      

  4.   

    Hook DeleteFile
    完全可以啊,干嘛这么麻烦啊。
    至于到回收站,毕竟还没DeleteFile。
      

  5.   

    楼上说的就是这个函数,msdn上面有个sample.
    HANDLE hNotify = ::FindFirstChangeNotification(pInfo->strMonitorPath,FALSE,
                                    FILE_NOTIFY_CHANGE_FILE_NAME|FILE_NOTIFY_CHANGE_SIZE);FILE_NOTIFY_CHANGE_FILE_NAME Any file name change in the watched directory or subtree causes a change notification wait operation to return. Changes include renaming, creating, or deleting a file name. 
      

  6.   

    to cnzdgs 能不能给小弟一个Demo看看,HOOK没有接触过。谢谢
      

  7.   

    各位老大,有没有DEMO发给我一个呀,小弟信箱 [email protected],谢谢了