我发现flash打开一个源文件编辑保存后,如果关闭文件但不退出flash,那么源文件可被删除,但文件夹却不能删除。用unlocker看到文件夹被flash锁定了。我想在不关闭flash的情况下,用vb编程解除flash的锁定并删除文件夹。请问如何用VB实现?当然不解除锁定能直接删除最好的,但前提是不关闭flash.

解决方案 »

  1.   

    前提是这个flash是你自己写的,这样,就可以在flash里关闭相关句柄就可以了。
      

  2.   

    其实这是操作系统的功能。
    flash软件有一个当前目录,即工作目录,这是操作系统提供给他的,其实软件并没有锁定。如果是自己编写的软件倒是很容易解决这个问题,只需要将工作目录转换到c:\就可以解决这个问题了。
      

  3.   

    lyserver:你是vb专家,我只想把这个文件夹删除,flash也就是adobe flash,我搞不懂文件能删除,flash锁定这个文件夹干嘛?你能否写个简单的unlocker?
      

  4.   

    Private Sub Command1_Click()
        Dim Fsys As New FileSystemObject
        Dim FilePath As Folder
        
        Set FilePath = Fsys.GetFolder("C:\Dynapack\FW\K6(ATL)_Updater_to_V201_100317-bq20z451")
        
        FilePath.Delete True
        
    End Sub
    试试这样行不行
      

  5.   

    用unlocker看到文件夹被flash锁定了,不知道用unlocker能解锁不,如果能,解锁后删不就行了。
      

  6.   

    我要在自己的程序中结束,不是手功,如果能调用unlocker,也可,但怎么弄?
      

  7.   

    unlocker当然可以的,所以想自己写
      

  8.   

    我只知道可以hook资源管理器,程序在访问和操作文件的时候都可以拦截到,不知道如何解除访问...
      

  9.   

    UnLocker好像使用了驱动程序一级的底层方法C:\Program Files\Unlocker\UnlockerDriver5.sys
    反向工程(即反汇编加调试)UnLocker,学习或者调用它的功能应该可以。
      

  10.   

    Ring3下完全可以实现关闭其他进程打开的文件(夹)句柄,你需要遍历+远程注入+调用CloseHandle关闭句柄。
      

  11.   

    好像陈辉有文件解锁的程序,找chenhui530
      

  12.   

    陈辉大哥写的那个在Vista下早不能用了,因为硬编码的问题,XP下文件的硬编码是26,Vista是25
    Ring3下标准的方式:
    NtQuerySystemInformation——NtQueryInformationFile——CreateRemoteThread(CALL:CloseHandle)
      

  13.   

    Vista下硬编码需要自己搜索取得,麻烦啊麻烦