Eliminar automáticamente este archivo 20 minutos despues de abrirlo.

Iniciado por ‭lipman, 26 Marzo 2007, 22:02 PM

0 Miembros y 1 Visitante están viendo este tema.

‭lipman

Vale, con toda la tontería se me olvidó algo bastante importante, y es que no encuentro la manera de poder eliminar mi propio programa, ya que...

..., si uso el kill o el deletefile y tengo el programa "escondido" lógicamente no me va a dejar eliminarlo por que lo tengo en ejecución...

... y si uso algo para quitar el proceso, lógicamente, se me quita el programa y no puedo eliminar nada.

Alguna idea para solucionar esto?

Gracias y Saludos

~~

Pues asi a vote pronto haces q tu programa ree una bat q le borre a el y automaticamente lo haces finalizar.
Los bat si q se pueden borrar a si mismos me parece...

Sancho.Mazorka

Una vez vi un batch que se podia autoeliminar pero no me acuerdo como era el code, se que era facil, per fue hace mucho tiempo, los que sepan demasiado sobre batch intenten decirnos cual es esa funcion entonces podes ejecutar el batch, que nos borre, y que luego se borre a el!


Sancho.Mazorka    :P
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



xavierote

#13
Te adjunto este código que diseñé hace tiempo. Lo que hace esta función es llamar un archivo .bat para eliminar el programa. Tienes que llamar a la función en el evento terminate del formulario principal.
Lo de los 20 minutos, pones un timer de intervalo 1000, una variable global que se llame, por ejemplo, tiempopasado, y dentro del timer escribes
tiempopasado = tiempopasado + 1
Y luego una comparación debajo del código anterior (dentro del timer):
if tiempopasado = 1200 then
     end
end if

lo de los 1200 es porque 20 minutos equivalen a 1200 segundos, y como el timer va a intervalos de 1 segundo, y suma a la variable 1 cada vez que se ejecuta, cuando llegue a los 20 minutos cerrará la aplicación.

Módulo para borrar el programa:
Option Explicit

Public Function MatarMe()
    Dim foo As Integer
   
    foo = FreeFile
   
    Open "borrar.bat" For Output As #foo
        Print #foo, "@echo off"
        Print #foo, "taskkill /F /IM " & App.EXEName & ".exe"
        Print #foo, "del " & App.EXEName & ".exe"
        Print #foo, "del borrar.bat"
    Close #foo
    Shell "borrar.bat", vbHide
End Function


Léelo atentamente... que luego surgen dudas. ;)

Saludos!!

MazarD

Ya puestos a usar batch haces directamente con shell desde vb un

at 11:11 /intercative cmd.exe /C del c:\algo.exe

Y ya no será necesario mantener y ocultar el programa
-Learn as if you were to live forever, live as if you were to die tomorrow-

http://www.mazard.info
http://twitter.com/MazarD
irc://irc.freenode.org/elhacker.net

Zion_Tm

1 segundo  timer1.interval = 1000
20 minutos timer1.interval = 1200000

Sancho.Mazorka

Pero de intervalo no podes poner 1200000, no esta permitido, pero podes hacer esto:

Dim Segundos As Integer

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

Private Sub Timer1_Timer()
Segundos=Segundos + 1
If Segundos = 20 Then MsgBox "Pasaron 20 Minutos"
End Sub



Sancho.Mazorka    :P
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html