如何知道一个文件夹被打开了?请高手指点,谢谢

解决方案 »

  1.   

    你双击dir,filelist中有文件,不就打开了。
      

  2.   

    肯定有一些shell的接口可以简单的做过,只用win api来说,也应该可以findwindow来解决。
      

  3.   

    文件夹应该没有“打开了”这个概念吧,我猜在资源管理器打开一个文件夹应该只相当于一个查询过程,我如果在命令窗口敲命令dir c:\windows那算不算打开了文件夹?另一个例子是,如果你打开了一个文本文件,用常规方法你是不能删除它所在的目录的,但如果你只是“打开了”一个文件夹,则可以用另一个文件夹把它删掉。
      

  4.   

    我的意思是:如果C:\windows目录被打开了,我怎么能够通过程序来判断这个目录现处于打开状态?再求高手解答,谢谢
      

  5.   

    小弟愚钝不知道,判断app.path行不行?
      

  6.   

    ret = FindWindow(0&, "WINDOWS")
    If (ret<>0) Then
        .....
    End If
      

  7.   

    楼主是想知道 Windows 系统的资源管理器中那个文件夹是正在被显示文件和子文件夹列表的当前文件夹?
      

  8.   

    if dir$(文件名) then
    end if
    这个就可以测试这个文件是否被打开
      

  9.   

    我提供一个思路,大家看看是否可行:一,使用EnumWindow+SendMessage+WM_GETTEXT取得所有可视窗口标题;二,再使用GetWindowThreadProcessId取得标题中有你标志的关键字的窗口所属进程PID;三,列举进程,找到EXPLORER进程的PID,比较之;这三步完成,就应该可以确认某个窗体是EXPLORER的,并且标题中包含你所标志的关键字.仅判断标题,而不作所属进程的判断,就怕误伤~~~
      

  10.   

    20楼是基于14楼的假设.....楼主又不说清楚.现在这么多楼了,大家都还全是在"猜".要说最可靠最完美的方案,那就是写IFS驱动,直接在驱动层对所有文件操作进行过滤,就没有什么办不到的了....