C# 如何hook文件创建和删除?并且C#hook文件的时候会不会用到SetWindowsHookEx这个函数?
 internal enum HookType
        {
            MsgFilter = -1,
            JournalRecord = 0,
            JournalPlayback = 1,
            Keyboard = 2,
            GetMessage = 3,
            CallWndProc = 4,
            CBT = 5,
            SysMsgFilter = 6,
            Mouse = 7,
            Hardware = 8,
            Debug = 9,
            Shell = 10,
            ForegroundIdle = 11,
            CallWndProcRet = 12,
            KeyboardLL = 13,
            MouseLL = 14,
        }
这里面没有关于文件的参数,我是菜鸟求帮助!希望大大们提供一个hook创建文件的代码,就为了这个东西,我在csdn上面下载了很多这方面的资源分都用完了!说明不使用filesystemwatch这个,谢谢了!

解决方案 »

  1.   

    要Hook一个文件夹还是Hook整个硬盘?
    如果是整个硬盘,我觉得Hook相关API还来得容易,如:
    CreateFile
    DeleteFile
      

  2.   

    就是hook一个文件夹嘛,在网上看了一些hook鼠标或者键盘的操作,都是用了SetWindowsHookEx这个函数的,如果hook CreateFile和DeleteFile这两个函数的话会不会通过SetWindowsHookEx这个函数来设置全局钩子呢?我越看越乱了,希望各位大大们回复详细些,谢谢了!
      

  3.   

    就是hook一个文件夹嘛,在网上看了一些hook鼠标或者键盘的操作,都是用了SetWindowsHookEx这个函数的,如果hook CreateFile和DeleteFile这两个函数的话会不会通过SetWindowsHookEx这个函数来设置全局钩子呢?我越看越乱了,希望各位大大们回复详细些,谢谢了!
      

  4.   

    如果只是一个文件夹
    HOOK都不用了
    直接从Directory.GetFiles入手就行了
    少了哪个文件就是删除
    多了哪个文件就是创建
    以前写过一个类
    我找找
      

  5.   

    用MadCodeHook库,带例子的 GOOGLE一下吧.
      

  6.   

    哥子,我的意思是不管哪个进程创建了文件或者删除了文件在进程创建和删除之前我要比进程先得到消息查看是否合法,比如说w3wp.exe要创建a.asp;.gif这个文件,这种文件肯定不合法的,我就不让w3wp.exe这个进程创建!有点像杀毒软件了
      

  7.   

    这么难
    还不知道Hook能不能搞掂
    要写文件系统驱动了
      

  8.   

    如果通过hook来监控文件能不能得到创建或者打开文件的进程或者进程句柄呢?如果能得到能不能把这个句柄结束了啊?能留个qq号不?
      

  9.   

    系统级的编程,感觉C#还是做不到的,需要注入DLL.系统提供的API也只提供了键盘和鼠标的HOOK.
      

  10.   

    如果只是监视文件删除变化
    C# 已经提供 FileSystemWatcher类了,处理起来很方便的。