bueno como dice la pregunta como mantener un procedimiento en ejecucion.. aunque suena simple... pero la idea es tener un procedimiento se ejecute o este pendiente siempre .. pero que no consuma recursos de microprocesador ni memoria .. lo que tengo es :
todo el procedimento en un timer y lo ejecuto cada segundo, pero este me consumia de 3 a 5 % de procesador en la pc testeada.. lo optimize un poco y ahora consume de 2 a 3 % del procesador, pero cada segundo esta asi...
que es lo que hace el procedimento?
pues lee una lista de un archivo donde tengo una lista de nombres de aplicaciones indeseables que no quiero se ejecuten en la pc y con un findwindow lo encuentro en memoria y lo finalizo, y asi puedo seguir agregando nombres en la lista de programas con sus nuevas versiones...
y todo ese procedimiento se repite cada segundo... y aqui el detalle aveces se consume mucha cpu y eso no esta bien..
como puedo cambiar o evitar el uso de un timer o temporizador ... o si es posible de hacer algun tipo de procedimento (como un hook) no se casi nada de eso, pero bueno almenos optimizar el bucle.
aki esta mi codigo optimizado, cargo la lista a un listbox y de con esa lista hago la buskeda en memoria..
Private Sub listar()
On Error GoTo error
Dim linea As String
Dim linea2 As String
Open "data.db" For Input As #2
Do Until (EOF(2))
Line Input #2, linea
linea2 = Encrypt(linea)
List1.AddItem linea2
Loop
Close (2)
Exit Sub
error:
Close (2)
End Sub
y el procedimento de buskeda con un timer a 1000 ms:
Private Sub Timer1_timer()
On Error Resume Next
Dim i As Integer
Dim proceso As String
total = List1.ListCount - 1
For i = 0 To total
proceso = List1.List(i)
CerrarProceso (proceso)
Next i
End Sub
y se que la pregunta no esta bien formulada, no se me ocurrio ponerle otro titulo.
y si me diras busca en google.. pues ya busque y no encontre nada con lo que busco.
EDIT: sobre lo que optimize es que la lista ya lo tengo dentro del programa en un listbox y asi me evito estar cargandolo cada vez y asi reduci el uso del cpu.
Me olvide mencionar si se puede hacer como los antivirus .. estan pendientes de lo que se ejecuta, y cuando sucede eso recien inicia la buskeda .. algo asi como revisando si hay cambios en la memoria.
Saludos.