我虽然没有试过楼上的方法,但是绝对是没有必要搞那么复杂的。。 以下代码是刚刚测试过的~~~~~可以复制程序自身~~~~ Option ExplicitPrivate Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long Private Sub Form_Load() Dim moduleName As String * 256 GetModuleFileName 0&, moduleName, 256& CopyFile moduleName, App.Path & "\1.exe", 1 End Sub
用API函数CopyFile可以复制正在运行的exe到指定目录,当然也可以复制自身,代码如下:声明API Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long’ToPath为目的文件路径,FromPath为源文件路径 If Dir(ToPath) = "" Then Call CopyFile(FromPath, ToPath, False) End If
以下代码是刚刚测试过的~~~~~可以复制程序自身~~~~
Option ExplicitPrivate Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Private Sub Form_Load()
Dim moduleName As String * 256
GetModuleFileName 0&, moduleName, 256&
CopyFile moduleName, App.Path & "\1.exe", 1
End Sub
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long’ToPath为目的文件路径,FromPath为源文件路径
If Dir(ToPath) = "" Then
Call CopyFile(FromPath, ToPath, False)
End If
FileCopy App.Path & "\" & App.EXEName & ".exe", App.Path & "\" & Replace(Now, ":", ":") & App.EXEName & ".exe"
End Sub
App.Path & "\" & Replace(Now, ":", ":") 可改为你的路径
http://www.jiyi.org