Autor
|
Tema: Eliminar automáticamente este archivo 20 minutos despues de abrirlo. (Leído 4,949 veces)
|
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
|
|
|
En línea
|
|
|
|
GarcíaMan
Desconectado
Mensajes: 24
Behold!
|
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 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í
|
|
|
En línea
|
|
|
|
vivachapas
Desconectado
Mensajes: 612
|
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 para borrar el programa creo q podria ser con esta funcion kill
|
|
|
En línea
|
|
|
|
Zion_Tm
Desconectado
Mensajes: 21
|
Bueno , organize tu code y no me salto ningun error , pero tampoco funciona la autoeliminacion 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
|
|
|
En línea
|
|
|
|
<--v1c1ous-->
Desconectado
Mensajes: 776
¡Operadora! ¡Deme el número para el 911! - Homero
|
Private Declare Function DeleteFile Lib "kernel32.dll" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
DeleteFile App.Path & "\file.ext"
|
|
|
En línea
|
|
|
|
lipman
|
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
|
|
« Última modificación: 27 Marzo 2007, 15:10 pm por lipman_dj »
|
En línea
|
|
|
|
ReViJa
|
Si no te importa que se vea con el administrador de tareas cambia la propiedad del formulario ShowInTaskbar a false.
|
|
|
En línea
|
|
|
|
[VolkS]
Desconectado
Mensajes: 288
[Argentina]
|
que se auto abra e inyecte caracteres 09DSANM0ASDNA0SDNAS0D9ANSD09SAND0SAND, y ahi no seria una aplicacion de w32 valida xD
|
|
|
En línea
|
|
|
|
~~
|
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. 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
|
|
|
En línea
|
|
|
|
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. Saludos y gracias
|
|
|
En línea
|
|
|
|
|
|