如果谁有较好的方法或源码,请寄:[email protected]
如果分数不够,我将另开贴加分。
谢谢各位!

解决方案 »

  1.   

    http://vchelp.163.net/source/filemonsrc.zip
    好象可以监视文件系统的使用情况,拿回去研究一下吧。当中应该用到了钩子
      

  2.   

    To ahphone(根号6.0):
    我找到类似的东东,但那只是“事后监督”,即已经删除后才知道用户在删文件。我需要在用户让系统删除文件时,但系统尚未删除之前阻止这一行为。还望各位高手多多指教,分不够我可以另开贴来加。谢谢!
      

  3.   

    HOOK(金山糍粑获得特定得目录名)再处理
      

  4.   

    可以使用 MS 提供的 Detours,
    截获系统中 DeleteFile()和SHFileOperation() api 的调用,应该可以了把
      

  5.   

    To gboy(hello):请问:
    哪有 Detours ?如何用?
      

  6.   

    截获自己程序调用的 MessageBoxA如果要借或其他程序,必须要写成 dll,然后把 dll 植入目标进程#include "stdafx.h"#include <windows.h>
    #include <detours.h>
    DETOUR_TRAMPOLINE(int WINAPI    trampoline_MyFun(
     HWND hWnd,
     LPCTSTR lpText, 
     LPCTSTR lpCaption, 
     UINT uType),
     MessageBoxA)  int WINAPI MyFunDetour(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType)
    {
     printf("MessageBox:\n\
    --------------------\n\
    Caption:%s \n\
    --------------------\n\
    Message:%s\n\
    --------------------\n",lpCaption,lpText);
     int ret=trampoline_MyFun(hWnd, lpText, "captionfdsakljfd;kls",uType); // call &Ocirc;&shy;&Ecirc;&frac14;&ordm;&macr;&Ecirc;&yacute;
     printf("================================ \n");
     return ret;
    }int main(int argc, char* argv[])
    {
     DetourFunctionWithTrampoline((PBYTE)trampoline_MyFun,(PBYTE)MyFunDetour);
     MessageBoxA(NULL,"hello,messagebox","Test",MB_OK);
     DetourRemove((PBYTE)trampoline_MyFun,(PBYTE)MyFunDetour);
     return 0;
    }
      

  7.   

    http://research.microsoft.com/sn/detours
    可以下载文档和例子
      

  8.   

    这个问题俺没搞过,只是了解一些很多杀毒软件就是拦截了系统的API达到目的的。
    所以你要阻止别人删除文件,应该拦截DeleteFile函数,去看看
    http://www.vckbase.com/faq/system/1.htm
    另外一个办法是用HOOK Mouse Keyboard消息。
    只能拦截用户鼠标右键删除和键盘delete但是不能拦截程序删除
      

  9.   

    好像有本书叫windows shell编程的可以解决这个问题你可以看看的。
      

  10.   

    To leojay(leojay) :
    请问哪有这样的书?To lhj(努力加油) :
    我这就去找。To gboy(hello) :
    谢谢。我先研究一下。To  Chice_wxg(我怕谁?我是谁!我是流氓我最贼。) :
    不知能否提供例程,源代码。
      

  11.   

    当用户删除某文件夹时,此时会触发一个shell接口,到www.codeproject.com上有个SHELL指南,CSDN大本营有中文翻译,你可以在这个接口中不让用户删除,也可提示,但删除文件提示,好像用到IFS,SYS internal有个例子,不过好像是个IFS例子呀!,这个不太清楚,祝你好运。
      

  12.   

    做一个shell的钩子!vc专家有一个kblauch的例子
      

  13.   

    TRY BHO or Shell extension
      

  14.   

    谢谢 vcmfc, SYS internal 的产品中有个 FileMon , 我用过,但我不知道该程序中所截获的大量信息中,哪个才是意味着用户在删除文件?不知哪位高手可否指点一二?(www.sysinternals.com)对IFS我可不懂得。前两天我收到一位网友来信,附件中有个ShellExt,可该DLL只能截获删除文件夹时的信息。对于文件不行。在MSDN中我也没有找到用于文件的。各位可否将源代码发给我?([email protected])
      

  15.   

    http://www.applevb.com/art/undoc3.htm
    上面的文章介绍的包括对删除文件以及文件夹的监控,不过代码是VB的,你可以修改为VC的,另外就是你可以利用Execute Hook实现对文件操作的监控。
      

  16.   

    谢谢 lhj(努力加油)、 gboy(hello) :
    我正测试。To TechnoFantasy(www.applevb.com):
    我认为那篇文章所述仍是“事后记录”,不能在物理删除(或删到回收站)前阻拦。我没用过Execute Hook,如何实现?哪位网友用过sysinternals (www.sysinternals.com)的 FileMon ?望告知其监视的信息中哪个(些)意味着用户在删除文件(夹)。谢谢!
      

  17.   

    不知哪些朋友用过sysinternals 的 FileMon, 该程序用了VxD技术,还请指教?对于Hook API,我试过,但对用 Del 内部命令就无法了,而且就算是在Windows 
    的浏览器中进行删除 ( 不使用 del 命令)也无法激活监控程序。 只有当某个程序真正调用了相关 API 函数如 DeleteFileA/W 时才成功。不知各位是否有真正能实现文件监控的办法,难道只有用 VxD ?
    可是对于 FileMon 却给出大量的内部信息,让人分不出哪个(些)才是意味着用户在删除,真是伤脑筋啊。Help!!!
      

  18.   

    我已经搞定了。
    做了个 VXD ,在Win 9x 下没问题,针对各企业客户一般很少用 Win NT/2000/XP
    的情况,我想这大概够了吧。真没想到用 VToolsD 写 VXD 还是不复杂,倒是在 Win NT/2000/XP 下用 DDK写
    .SYS 还不能搞定。而且对那些 IRP_MJ_??? 我看了就头痛!讨论到此为止,对这些问题的更多信息,可以在
    www.DriverDevelop.com
    上看到。非常感谢大家!