现在假设有a.exe,其中调了b.exe,b.exe有一个功能是将别目录下的a.exe复制到当前的a.exe,
语句如下:
FileCopy "c:\a.exe", GetTrueAppPath(App.Path) + "\a.exe",但提示没有权限,无法覆盖.
请问怎样才能实现这个功能:即a调了b,而b的处理中可以把a.exe用别的文件给覆盖了。谢谢!

解决方案 »

  1.   

    直接关闭Shell打开的进程:
    标准模块:
    Option Explicit
    '获得进程的句柄
    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
    ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long
    '终止进程
    Public Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As Long, _
    ByVal uExitCode As Long) As Long
    Dim mProcID As Long窗体:
    Private Sub Command1_Click()    
        mProcID = Shell("C:\Program Files\Tencent\QQGame\QQGame.exe")
    End SubPrivate Sub Command2_Click()    
        mProcID = OpenProcess(1&, -1&, mProcID)
        TerminateProcess mProcID, 0&
    End Sub
    这个和你的要求差很远,给你也许有点帮助,至少知道先取进程,后结束进程!!
      

  2.   

    在FileCopy前,先找到运行中的a.exe的id,然后结束它的进程,完了再FileCopy
      

  3.   

    谢谢!但是,我现在有一个这样的程序,他没有进行结束进程的处理,而是在b.exe进行了好多对数据库(access)的操作,如update,insert等,当有了这些处理后再进行filecopy时就能实现了,但我删除一部分处理后又不能实现了,不知道为什么?我是百思不得其解。