是这样的,有一个磁盘文件.另外一个程序打开了这个文件.
我如何才能在这个程序关闭这个文件的时候得到通知.或者如何等待这个文件关闭?
我不想用循环加延时的方式不停的尝试.
WaitForSingleObject ?
FindFirstChangeNotification ?希望能给出详细点的代码.先谢谢了.

解决方案 »

  1.   

    被动地去查询很费资源,效果也不好。看看能否通过HOOK打开文件的进程来做到主动通知。
      

  2.   

    可以试试用FindFirstChangeNotification监视文件所在目录。
      

  3.   

    自己顶一下现在还有问题我可能得不到打开这个文件的程序的有效句柄。比如你已经用word打开一个文件。如果在打开一个.doc文件,word会检测如果word已经运行,那么用已经运行的word打开这个文档。这样我们得到的句柄没什么用
      

  4.   

    FindFirstChangeNotification 好象如果那个应用程序只打开、但是不修改文件 的话就监视不到啊
      

  5.   

    只有文件发生了改变才会通过FindFirstChangeNotification收到通知,没有改变的文件收不到。恐怕没有专用的API来做这个事情
      

  6.   

    周期性尝试CreateFile,用写权限来打开文件,一直到成功