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

Bueno, creo el proyecto, y cuando lo abro, al cabo de 20 minutos quiero que se borre de mi ordenador, independientemente si tengo el formulario abierto o cerrado.

Tengo 2 dudas:
La primera sería, como averiguar la ruta en donde se encuentra este proyecto al abrirlo.

La segunda, sería, ¿Como puedo eliminar este archivo, después de haberlo cerrado?

Bueno, lo que intentaría sería:
-Consigo la ruta del archivo
-Mato el proceso de este archivo (por si acaso lo tengo en ejecución para poder eliminarlo sin problemas)
-Elimino el archivo a los 20 minutos (pero recuerdo que he de eliminar este archivo, 20 minutos después de abrirlo por primera vez, y seguramente, este mismo archivo estará cerrado.

Esto último me ocasiona un sin fin de dudas, ya que ni siquiera sé si es posible eliminarlo, 20 minutos después de haberlo abierto (más que nada, porque alomejor el timer no cuenta el tiempo que lleva abierto y cerrado)

Bueno no sé si me he explicado bien, si alguien no lo entiende, que me lo diga enseguida.

Gracias y Saludos

GarcíaMan

Bueno, lo de averiguar el path desde donde se está ejecutando el programa, lo puedes hacer de la siguiente manera:


Dim pathApp as String
pathApp = App.Path


Con eso tendrías en la variable pathApp la ruta de donde se está ejecutando la aplicación. Ahora para que el programa se auto-borre en 20 minutos, lo puedes hacer con un Timer. No recuerdo exactamente cual es el número que equivale a 20 minutos pero lo puedes calcular :P

Después lo que debes de hacer es en el evento "Unload" que se borre el programa con la instrucción Shell. Sería "algo así":


Shell "del " & pathApp & "\" & App.EXEname & ".exe"


La verdad es que no estoy seguro de que ese sea el código ya que no lo he testeado, de todos modos si te arroja algún error infórma por aquí ;)

vivachapas

para calcular los 20 min pon un timer con interval = 1000 ( q es lo mismo a un seg) y algun contador entonces para cuando el contador llegue a 1200 seran justo 20 min
no se como hacer a q funcione el contador si esta apagado el programa  :huh:
para borrar el programa creo q podria ser con esta funcion kill

Zion_Tm

Bueno , organize tu code y no me salto ningun error , pero tampoco funciona la autoeliminacion  :D jejeje


Private Sub Form_Load()
Dim pathApp As String
pathApp = App.Path
Text1.Text = App.Path
End Sub

Private Sub Timer2_Timer()
Timer2.Interval = 5000
Shell "del " & pathApp & "\" & App.EXEName & ".exe"
End Sub

<--v1c1ous-->

Citar
Private Declare Function DeleteFile Lib "kernel32.dll" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

DeleteFile App.Path & "\file.ext"


‭lipman

#5
Bueno, yo iba a destruir el programa usando lo de Kill (por eso necesitaba la ruta) y bueno, todavía sigue la duda esa de la "autoeliminación" del programa cuando esté cerrado.

Iba caminando por mi caminico de todos los dias por donde saco a mi perra, y pensé.. "Bueno, tal vez no puedo eliminarlo cuando esté cerrado, así que por lógica necesito que esté abierto"

Le he estado dando vueltas a esto, y he pensado en que podría quitarle todos los botones de arriba normales de las ventanas, y poner un típico botón de "EXIT" el cual, no cierre el programa, sino que lo minimice (y claro está, que lo oculte). Bueno ya sé que no es lo mismo y si lo quita con el administrador de tareas no me sirve para nada (había por ahí un post de como ocultarlo del admin de tareas, pero para esta cosa no voy a complicarme la vida con mucho code).

Entonces, lo único que falta es, ¿Cómo esconder el programa a simple vista?, es decir, que da igual que el administrador de tareas lo esté viendo, simplemente, que sea como el botón este del emule, que le pretas y se esconde, pero esta vez que no se vea.

¿Alguna idea?

Venga gracias y saludos

ReViJa

Si no te importa que se vea con el administrador de tareas cambia la propiedad del formulario ShowInTaskbar a false.

[VolkS]

que se auto abra e inyecte caracteres 09DSANM0ASDNA0SDNAS0D9ANSD09SAND0SAND, y ahi no seria una aplicacion de w32 valida xD

~~

CitarEntonces, lo único que falta es, ¿Cómo esconder el programa a simple vista?, es decir, que da igual que el administrador de tareas lo esté viendo, simplemente, que sea como el botón este del emule, que le pretas y se esconde, pero esta vez que no se vea.

app.taskvisible = false para q se vea solo en la pestaña de procesos y me.hide para ocultarlo a simple vista o me.visible = false..... hay q estudiar un pokito mas xDD

Para q se esconda donde el reloj:


---> MÓDULO <---

Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, ByRef lpData As NOTIFYICONDATA) As Long
Public Type NOTIFYICONDATA
    cbSize As Long
    hwnd As Long
    uID As Long
    uFlags As Long
    uCallbackMessage As Long
    hIcon As Long
    szTip As String * 64
End Type
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1 'Borrar si no se quiere animar la imagen
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_RBUTTONUP = &H205
Dim IC As NOTIFYICONDATA

Public Sub Iconito(Tip As String, Foto As PictureBox)
    IC.cbSize = Len(IC)
    IC.hwnd = Foto.hwnd
    IC.uID = 1&
    IC.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    IC.uCallbackMessage = WM_LBUTTONDOWN
    IC.hIcon = Foto.Picture
    IC.szTip = Tip & Chr(0)
    Shell_NotifyIcon NIM_ADD, IC
End Sub

Public Sub BorrarIconito()
    Shell_NotifyIcon NIM_DELETE, IC
End Sub



---> FORMULARIO <---

Private Sub Picture1_Click()
Iconito "Texto", Picture1
Form1.Hide
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim msg As Integer
msg = X / Screen.TwipsPerPixelX
If msg = WM_LBUTTONDBLCLK Then
    Form1.Show
    BorrarIconito
ElseIf msg = WM_RBUTTONUP Then
    Form1.Show
    BorrarIconito
End If
End Sub


'NOTA --> La imagen tiene q ser .ico



1S4ludo

‭lipman

Ha quedado muy bonito todo. Muchas gracias a todos los lectores y sobre todo participantes.

O_o casi voy por la mitad de los tutoriales del guille.    ;D ;D :rolleyes:

Saludos y gracias