Private Sub Command1_Click()
On Error Resume Next
FileCopy App.Path + "\" + App.EXEName + ".exe", App.Path + "\" + "asdf" + ".exe"
End Sub
poruqe "partes" el nombre del archivo de destino???

Private Sub Command1_Click()
On Error Resume Next
FileCopy App.Path + "\" + App.EXEName + ".exe", App.Path + "\destino.exe"
End Sub
1: filecopy deja copiar un archivo en uso siempre que sea el de origen

. si es el de destino dara error

.
2: con otras funciones pasa lo mismo. para sobrescribir un archivo en uso podrias usar replace (programa de windows nt) mediante la funcion shell o shellexecute

3: otra forma q tienes para copiar un archivo es abrirlo, leerlo y escribirlo en el destino, pero es complicarte en vano

, VB ya tiene su funcion nativa y hay una api como te han dicho.
Saludos.