[Aportes indexados] Cerrar aplicacion apartir del .exe de la listabox

Estado
Cerrado para nuevas respuestas.

Zinnky

Newbie Lvl 4
Mostraremos cómo obtener el nombre del exe(y otros datos) de todos los programas que se están ejecutando y cómo cerrar uno de esos procesos. En el ejemplo que acabo de hacer guardo los nombres y los identificadores de proceso en un listbox (es como una lista de tareas de windows) y pulsando un botón se cierra el proceso seleccionado.

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #808080;">'[16/03/07- Zinnky-]</span></li><li style="" class="li2"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Declare</span> <span style="color: #b1b100;">Function</span> CreateToolhelpSnapshot Lib <span style="color: #ffffff;">"kernel32"</span> Alias <span style="color: #ffffff;">"CreateToolhelp32Snapshot"</span> <span style="color: #66cc66;">(</span>ByVal lFlags <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span>, ByVal lProcessID <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span><span style="color: #66cc66;">)</span> <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Declare</span> <span style="color: #b1b100;">Function</span> ProcessFirst Lib <span style="color: #ffffff;">"kernel32"</span> Alias <span style="color: #ffffff;">"Process32First"</span> <span style="color: #66cc66;">(</span>ByVal hSnapShot <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span>, uProcess <span style="color: #b1b100;">As</span> PROCESSENTRY32<span style="color: #66cc66;">)</span> <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Declare</span> <span style="color: #b1b100;">Function</span> ProcessNext Lib <span style="color: #ffffff;">"kernel32"</span> Alias <span style="color: #ffffff;">"Process32Next"</span> <span style="color: #66cc66;">(</span>ByVal hSnapShot <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span>, uProcess <span style="color: #b1b100;">As</span> PROCESSENTRY32<span style="color: #66cc66;">)</span> <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li2"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Declare</span> <span style="color: #b1b100;">Sub</span> CloseHandle Lib <span style="color: #ffffff;">"kernel32"</span> <span style="color: #66cc66;">(</span>ByVal hPass <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span><span style="color: #66cc66;">)</span></li><li style="" class="li1"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Type</span> PROCESSENTRY32</li><li style="" class="li1">dwSize <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li2">cntUsage <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1">th32ProcessID <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1">th32DefaultHeapID <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li2">th32ModuleID <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1">cntThreads <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1">th32ParentProcessID <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li2">pcPriClassBase <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1">dwFlags <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1">szExeFile <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">String</span> * <span style="color: #cc66cc;">260</span></li><li style="" class="li2"><span style="color: #b1b100;">End</span> <span style="color: #b1b100;">Type</span></li><li style="" class="li1"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Declare</span> <span style="color: #b1b100;">Function</span> TerminateProcess Lib <span style="color: #ffffff;">"kernel32"</span> <span style="color: #66cc66;">(</span>ByVal hProcess <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span>, ByVal uExitCode <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span><span style="color: #66cc66;">)</span> <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Declare</span> <span style="color: #b1b100;">Function</span> OpenProcess Lib <span style="color: #ffffff;">"kernel32"</span> <span style="color: #66cc66;">(</span>ByVal dwDesiredAccess <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span>, ByVal bInheritHandle <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span>, ByVal dwProcessId <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span><span style="color: #66cc66;">)</span> <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li2"><span style="color: #b1b100;">Const</span> PROCESS_TERMINATE = &H1</li><li style="" class="li1"><span style="color: #b1b100;">Const</span> PROCESS_CREATE_THREAD = &H2</li><li style="" class="li1"><span style="color: #b1b100;">Const</span> PROCESS_VM_OPERATION = &H8</li><li style="" class="li2"><span style="color: #b1b100;">Const</span> PROCESS_VM_READ = &H10</li><li style="" class="li1"><span style="color: #b1b100;">Const</span> PROCESS_VM_WRITE = &H20</li><li style="" class="li1"><span style="color: #b1b100;">Const</span> PROCESS_DUP_HANDLE = &H40</li><li style="" class="li2"><span style="color: #b1b100;">Const</span> PROCESS_CREATE_PROCESS = &H80</li><li style="" class="li1"><span style="color: #b1b100;">Const</span> PROCESS_SET_QUOTA = &H100</li><li style="" class="li1"><span style="color: #b1b100;">Const</span> PROCESS_SET_INFORMATION = &H200</li><li style="" class="li2"><span style="color: #b1b100;">Const</span> PROCESS_QUERY_INFORMATION = &H400</li><li style="" class="li1"><span style="color: #b1b100;">Const</span> STANDARD_RIGHTS_REQUIRED = &HF0000</li><li style="" class="li1"><span style="color: #b1b100;">Const</span> SYNCHRONIZE = &H100000</li><li style="" class="li2"><span style="color: #b1b100;">Const</span> PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED <span style="color: #b1b100;">Or</span> SYNCHRONIZE <span style="color: #b1b100;">Or</span> &HFFF</li><li style="" class="li1"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Declare</span> <span style="color: #b1b100;">Sub</span> Sleep Lib <span style="color: #ffffff;">"kernel32"</span> <span style="color: #66cc66;">(</span>ByVal dwMilliseconds <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span><span style="color: #66cc66;">)</span></li><li style="" class="li1"><span style="color: #808080;">'Para llenar el listbox con los procesos</span></li><li style="" class="li2"><span style="color: #b1b100;">Sub</span> RellenaLista<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span></li><li style="" class="li1"><span style="color: #b1b100;">Dim</span> hSnapShot <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1"><span style="color: #b1b100;">Dim</span> uProceso <span style="color: #b1b100;">As</span> PROCESSENTRY32</li><li style="" class="li2"><span style="color: #b1b100;">Dim</span> res <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1">List1.<span style="color: #66cc66;">Clear</span></li><li style="" class="li1">hSnapShot = CreateToolhelpSnapshot<span style="color: #66cc66;">(</span><span style="color: #cc66cc;">2</span>&, <span style="color: #cc66cc;">0</span>&<span style="color: #66cc66;">)</span></li><li style="" class="li2"><span style="color: #b1b100;">If</span> hSnapShot <> <span style="color: #cc66cc;">0</span> <span style="color: #b1b100;">Then</span></li><li style="" class="li1">uProceso.<span style="color: #66cc66;">dwSize</span> = <span style="color: #b1b100;">Len</span><span style="color: #66cc66;">(</span>uProceso<span style="color: #66cc66;">)</span></li><li style="" class="li1">res = ProcessFirst<span style="color: #66cc66;">(</span>hSnapShot, uProceso<span style="color: #66cc66;">)</span></li><li style="" class="li2"><span style="color: #b1b100;">Do</span> <span style="color: #b1b100;">While</span> res</li><li style="" class="li1">List1.<span style="color: #66cc66;">AddItem</span> <span style="color: #b1b100;">Left</span>$<span style="color: #66cc66;">(</span>uProceso.<span style="color: #66cc66;">szExeFile</span>, <span style="color: #b1b100;">InStr</span><span style="color: #66cc66;">(</span>uProceso.<span style="color: #66cc66;">szExeFile</span>, <span style="color: #b1b100;">Chr</span>$<span style="color: #66cc66;">(</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span> - <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">)</span></li><li style="" class="li1">List1.<span style="color: #66cc66;">ItemData</span><span style="color: #66cc66;">(</span>List1.<span style="color: #66cc66;">NewIndex</span><span style="color: #66cc66;">)</span> = uProceso.<span style="color: #66cc66;">th32ProcessID</span></li><li style="" class="li2">res = ProcessNext<span style="color: #66cc66;">(</span>hSnapShot, uProceso<span style="color: #66cc66;">)</span></li><li style="" class="li1"><span style="color: #b1b100;">Loop</span></li><li style="" class="li1"><span style="color: #b1b100;">Call</span> CloseHandle<span style="color: #66cc66;">(</span>hSnapShot<span style="color: #66cc66;">)</span></li><li style="" class="li2"><span style="color: #b1b100;">End</span> <span style="color: #b1b100;">If</span></li><li style="" class="li1"><span style="color: #b1b100;">End</span> <span style="color: #b1b100;">Sub</span></li><li style="" class="li1"><span style="color: #808080;">'Para cerrar el proceso seleccionado</span></li><li style="" class="li2"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Sub</span> Command1_Click<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span></li><li style="" class="li1"><span style="color: #b1b100;">Dim</span> hProcess <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span>, iResult <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1"><span style="color: #b1b100;">If</span> List1.<span style="color: #66cc66;">ListIndex</span> = <span style="color: #cc66cc;">-1</span> <span style="color: #b1b100;">Then</span></li><li style="" class="li2"><span style="color: #b1b100;">Beep</span></li><li style="" class="li1"><span style="color: #b1b100;">MsgBox</span> <span style="color: #ffffff;">"Debe seleccionar una aplicación"</span></li><li style="" class="li1"><span style="color: #b1b100;">Else</span></li><li style="" class="li2">hProcess = OpenProcess<span style="color: #66cc66;">(</span>PROCESS_TERMINATE, <span style="color: #b1b100;">True</span>, List1.<span style="color: #66cc66;">ItemData</span><span style="color: #66cc66;">(</span>List1.<span style="color: #66cc66;">ListIndex</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li1">iResult = TerminateProcess<span style="color: #66cc66;">(</span>hProcess, <span style="color: #cc66cc;">99</span><span style="color: #66cc66;">)</span></li><li style="" class="li1">CloseHandle hProcess</li><li style="" class="li2">Sleep <span style="color: #66cc66;">(</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">)</span></li><li style="" class="li1">RellenaLista</li><li style="" class="li1"><span style="color: #b1b100;">End</span> <span style="color: #b1b100;">If</span></li><li style="" class="li2"><span style="color: #b1b100;">End</span> <span style="color: #b1b100;">Sub</span></li><li style="" class="li1"><span style="color: #808080;">'/ [16/03/07- Zinnky-]</span></li></ol></div>[/vb]
 

Zinnky

Newbie Lvl 4
Che no les gusto el code?
Se los paso asi. para que lo acomoden para que con una Case
Lo llamen como un cmando y actue sobre un usuario xD :lol:
 

About

Director del Proyecto
Está bueno el code, pero estaria bueno también que pongas el mismo code pero que tome el "Caption" de un programa, entonces, es un poco más útil :$
Y de paso que nos enseñes a insertarlo al AO :$
 

Zinnky

Newbie Lvl 4
ajjaa, si tenes razon me re sebe

bueno ahora voy a postiar en otro treadh otros codiginhos mas adaptables para las personas compiladoras
 

^[GS]^

GS-Zone Admin
Miembro del equipo
Administrador
Moderador
Es valido :p pero estaria bueno que hicieras mas comentarios detallando que esta haciendo cada parte del codigo para ubicarse mejor :)
 

DarkThom

Oráculo Lvl 3
Por Lo Que Lei Lo que HAce Es Leerle Los Procesos Activos a un Usuario y Cuando Selecionas uno de la Lista y Apretas en un Botno Se lo Cierra

Peor Hay Errores:

Como Haces Por Ejemplo Para verme los Procesos Ami

Tendrias Que HAcerlo Para Que Con un comando Se Lo Lanze a Un USer DeterMiando , Despues Te Falta Esplicar el Formulario o Dodne se Ubicaria Esto

y Por Ultimo Esto Es Ilagel A No SeR que Vos Pongas en Los Terminos y Condiciones Que " Los gms ante actividad extrañan blalbla blapueden observar tus procesos blalbal "

Suerte
 

Zinnky

Newbie Lvl 4
DarkThom dijo:
Por Lo Que Lei Lo que HAce Es Leerle Los Procesos Activos a un Usuario y Cuando Selecionas uno de la Lista y Apretas en un Botno Se lo Cierra

Peor Hay Errores:

Como Haces Por Ejemplo Para verme los Procesos Ami

Tendrias Que HAcerlo Para Que Con un comando Se Lo Lanze a Un USer DeterMiando , Despues Te Falta Esplicar el Formulario o Dodne se Ubicaria Esto

y Por Ultimo Esto Es Ilagel A No SeR que Vos Pongas en Los Terminos y Condiciones Que " Los gms ante actividad extrañan blalbla blapueden observar tus procesos blalbal "

Suerte


1) A mi no me vas a seguir boludeando, me tenes re podrido,
2) el code lo saque yo.
3) Lo hise hasta aca y lo publique para que juntos lo instalemos en el Ao q sea necesario porque no tengo tiempo.

4) rapito, sos una cajita feliz, vencida.

5) te lo repito? el code lo defini hasta aca, porque no tengo tiempo.

6) NO ESTA TIPIFICADA LA LEY, Y MENOS, COMO UN CODIGO MALICIOSO.
SI no tampoco podriamos programar con el regedit. xD.

man el articulo que "crees que mensionas" no esta tipificado, y si te queres sacar las dudas culturisate un poquito.

solucion, Acepto criticas constructivas no las tuyas.


un besito.
Atte. Papa
 
Estado
Cerrado para nuevas respuestas.
Arriba