还有,比如磁盘上有一个.doc文档,有什么办法知道这个文档是否已经被word打开?
谢谢。

解决方案 »

  1.   

    open with CFile::shareExclusive, check error
      

  2.   

    使用API函数::OpenFile打开文件,其中UINT uStyle 参数设置为OF_SHARE_EXCLUSIVE。这样这个文件已经被打开,那么返回值为HFILE_ERROR
      

  3.   

    谢谢各位热心的回复!
    我的意思是在文件被打开后,比如.doc文件被word打开后,有没有什么办法知道
    这个文件什么时候被关闭?
    谢谢。
      

  4.   

    use NtQuerySystemInformation with NT_HANDLE_LIST flag  to get all handles of the system, then find all the file handles, get their file name...
      

  5.   

    什么意思?“这个文件什么时候被关闭?”我的上面答案:
    -----“使用API函数::OpenFile打开文件,其中UINT uStyle 参数设置为OF_SHARE_EXCLUSIVE。这样这个文件已经被打开,那么返回值为HFILE_ERROR”------------你既然可以判断这个文件已经被打开,那么如果想在判断是否已经被关闭,那么还是通过返回值判断。楼主能不能在解释一下“文件被关闭”是什么意思?
      

  6.   

    谢谢各位的回复!
    看来只有不断的查询(就是用OF_SHARE_EXCLUSIVE标志打开文件)来判断
    一个文件是否被其他软件打开了。
    谢谢
      

  7.   

    masterz(MS MVP)能否给出具体代码。