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..
Código
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:
Código
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.