如何用HOOK来监视 文件的关闭?
 比如,我有一个打开的doc文件,当关闭这个文件时,我如何到hook此动作!

解决方案 »

  1.   

    其实如果你想偷懒的话用个组件就行了
    http://www.lihuasoft.net/source/show.php?id=942
      

  2.   

    好像不行,那个最新的好像也只是支持delphi6呀! 我在delphi7下编译时,出错!
      

  3.   

    那似乎没啥好的办法了
    关键是要监控的是某一个文件被打开而不是被改变,似乎也没有找到相关的WORD打开文件的API,棘手……
      

  4.   

    要么你去用个Timer实时监控程序的句柄,找不到句柄的时候就报警
      

  5.   

    监视文件的打开的,可以hook createfile ,但是打开后的文件,如果要关闭时,要hook 什么api函数??
      

  6.   

    有种方法,但是那已经是hook消息而不是api
    关闭的时候都会向目标程序发送wm_close消息,程序接收到消息后就关闭
      

  7.   

    可以通过标题来判断吧,FINDWINDOW
      

  8.   


    Hook closeHandle
    但前提要记录下打开的DOC文件句柄,closeHandle
    时候对比下是否是DOC文件句柄是就监控到了.
      

  9.   


    CloseHandle;如果楼主是针对WORD的文档,我觉得可以通过查找临时文件来判断,正常,打开时,会产生一个或多个临时文件,关闭时,临时文件会自动消失.这不失为一个办法,呵呵.
      

  10.   

    这个办法不错,一般临时文件就是一个$号加上原word文件的名字
    如果退出的话,这个临时文件就不存在了
      

  11.   

    我想处理成一个工具,不是只争对word!正在试Hook closeHandle 的方法,看是否有效!
      

  12.   

    我觉得hook wm_close消息。
    如果hook CloseHandle的话,打开的文件是非法关闭的或异常了,不知道还能不能调用
    CloseHandle了。所以感觉Hook消息比较稳妥。。
      

  13.   

    分!~~~~如果是关闭Word的话,可以用Find方法,找不到窗口就是关闭了