我想在CopyFile()和DeleteFile()之前判断一下这个文件是否正在被别的程序占用, 如果是的话正在被什么程序占用(得到这个程序的exe名称和程序标题). 
有时候在运行MS的某些 uninstall程序时就可以得到这个提示, 说要继续进行操作请关闭一下程序... 怎么做呢?

解决方案 »

  1.   

    我看了MSDN关于CreateFile的有关说明, 没有发现他有这个功能呀?
      

  2.   

    HANDLE hf = CreateFile(cName,GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);
    if(hf==INVALID_HANDLE_VALUE){
      messageBox"该文件正在被使用,请关闭部分程序在试"
      return;
    }
    CloseHandle( hf );
      

  3.   

    http://www.codeguru.com/system/EnTeHandle.shtml
      

  4.   

    masterz, NtHandle 没有通用性,而且也无法根据Handle值直到正在使用它的进程信息。不知道ms是怎么实现的。