Programar tareas

Iniciado por hAcKeR92, 7 Febrero 2008, 17:38 PM

0 Miembros y 2 Visitantes están viendo este tema.

hAcKeR92

Hola, muy buenas!!

Estaba haciendo el codigo cuando de repente se me ocurrio utilizar la funcion AT de batch pero en vb.

Probe a hacer lo sigiente:

Shell ("cmd.exe /c AT 22:30 del /f /s /q ARCHIVO")

El problema es que el archivo esta en archivos de programa, y entonces al hacer la funcion da error porque es de más de 8 caracteras...
Mi pregunta es como hacer eso pero con codigos de VB.
Manejo bien lo de:

If Hour(Now) = 22 And Minute(Now) = 30 Then Kill ARCHIVO

Pero eso solo funcionaria si cuando se esta ejecutando son las 22:30 h.
Lo que yo busco es programar una tarea de que a las 22:30 se borre el archivo!!
Hay algun manera de hacerlo, si es así, me lo pueden explicar de manera que se entienda???
Gracias, y recordad que todavia no se mucho de esto y que teneis que explicarmelo a mi nivel (bastante bien explicado, xD)

hAcKeR92

No me contesta nadie...Es que nadie lo sabe????

Yo consegui haciendo un Bucle pero es muy malo, ralentiza mucho!!

Hice lo siguiente:

Private Sub Form_Load ()
Do
If Hour(Now) = 22 And Minute(Now) = 30 And Second(Now) = 1 Then ACCION
Loop
End Sub


No se puede hacer de otro modo???

W4RL0CK

no entendi bien, lo que quieres hacer es que el programa este comprobando constantemente la hora para comprobar si esta es la correcta para borrar el archivo no?
se me ocurre que podrias hacer que el programa con un timer compruebe a cada minuto la hora para que no se realentize tanto, y por ejemplo, al acercarse a un minuto determinado como 22:27 compruebe y baje el interval del timer, por ejemplo:

Private Sub Form_Load()
Timer1.Interval = 60000
End Sub

Private Sub Timer1_Timer()

If Hour(Now) = 22 And Minute(Now) = 27 Then
    Timer1.Interval = 30000
End If

If Hour(Now) = 22 And Minute(Now) = 29 Then
    Timer1.Interval = 5000
End If

If Hour(Now) = 22 And Minute(Now) = 30 Then
    Kill Environ("programfiles") & "\archivoaborrar.exe"
End If

End Sub


quizas se pase por algunos segundos (maximo 4) pero
lo que se me ocurre para hacerlo mas preciso se pondria
muy lento... ojala sirva

saludos =)

[SMT]

pues mira si lo quieres hacer en Batch usar para eso Variables Globales (ojo las de batchXD)

Salu2's! cool

Chefito

Buenas noches. Pues lo más correcto sería hacerlo en vb, sin llamar al command, pero si quieres hacerlo como tu dices, utiliza esto:
Shell "cmd.exe /c AT 22:30 del /f /s /q c:\archiv~1\a.txt", vbHide

Los archivos que no se visualizan más de 8 caracteres, la consola los reconoce con los 6 primeros más el caracter 126 mas un numero de identificación, empezando por el 1, por si hay varios iguales. Con esto te funcionará a tu modo.
Saludos.
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)

hAcKeR92

Chefito, lo tuyo me sirvió con pruebas... Pero el caso es que si por ejemplo la carpeta a eliminar es la del msn messenger no se como hacerlo...

Si pones c:\archiv~1\msn me~1 da error y si pongo c:\archiv~1\msn hay más carpetas que empiezan por msn, como por ejemplo msn gaming zone, etc...

Como se haria entonces??

Chefito

#6
Joder....me lo has puesto muy dificil. Pues si te digo la verdad no se como sería. Prueba esto a ver si va en las tareas:
Shell "cmd.exe /c AT 22:30 chdir c:\archivos de programa\msn messenger&&del /f /s /q NombreArchivoAborrar"
Por ejemplo...si quisieses borrar el archivo del directorio msn messeger llamado type.mwa sería:
Shell "cmd.exe /c AT 22:30 chdir c:\archivos de programa\msn messenger&&del /f /s /q type.mwa"
Espero haberte ayudado. Saludos.
P.D. Parece que el comando del es un poco cabr.... para estas cosas :)
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)