PDA

Ver la versión completa : Sabeis Cual Es El Codigo Para.....



kower
14-06-2003, 16:22
Alguien sabe kual es el codigo para finalizar la tarea de algun programa ??? no se si m expliko. Me refiero a la ventana esa k t sale cuando apretas ctril + alt + surp. Si alguien sabe cual es el codigo k m lo diga porfavor.

gondar_f
14-06-2003, 17:57
Primero lo que tienes que hacer es llamar a las api de windows, segundo no especificaste para que lenguaje o entorno de programación quieres el codigo.

The_chacal
14-06-2003, 17:58
Hola

Hace poco, hice el prgrama que tu dices, se llama mata procesos, y es mas potente que el ctrl + alt + supr, (puedes ver troyanos invisibles, etc...), en fin, aquí tienes el código, si quieres que te explique algo me lo dices, y te lo explico.

'En un módulo

Declare Function CreateToolHelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Public Const TH32CS_SNAPPROCESS As Long = 2&
Public Const MAX_PATH As Integer = 260
Public Const PROCESS_TERMINATE = &H1
Public Const VK_SNAPSHOT = &H2C
Public Const GW_HWNDNEXT = 2
Public Const GW_CHILD = 5

Public Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32moduleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * MAX_PATH
End Type

Public Sub GetProcess()
Form1.LST.Clear
Form1.LST2.Clear
Dim ret As String, out As String
Dim hSnapShot As Long
Dim uProcess As PROCESSENTRY32
Dim r As Long
hSnapShot = CreateToolHelpSnapshot(TH32CS_SNAPPROCESS, 0&)

If hSnapShot = 0 Then Exit Sub
uProcess.dwSize = Len(uProcess)
r = ProcessFirst(hSnapShot, uProcess)

Do While r
Form1.LST2.AddItem uProcess.th32ProcessID
Form1.LST.AddItem uProcess.szExeFile
r = ProcessNext(hSnapShot, uProcess)
Loop

Call CloseHandle(hSnapShot)
End Sub

Public Sub KillProcess(Pid2 As String)
Dim ret&
Dim ret1 As String, out As String
Dim pid As Long
pid = CLng(Pid2)
Dim lExitCode As Long
Dim hProcess As Long
hProcess = OpenProcess(PROCESS_TERMINATE, 0, pid)
ret& = GetExitCodeProcess(hProcess, lExitCode)
ret& = TerminateProcess(hProcess, lExitCode)
End Sub

'En un formulario: necesitas 2 botones y dos list box uno que se llame LST y otro LST2

Private Sub Command1_Click()
GetProcess
End Sub

Private Sub Command2_Click()
If LST.ListIndex = -1 Then
MsgBox "Selecciona un proceso", vbCritical, "Proceso sin seleccionar"
Else
If MsgBox("¿Estás seguro de querer matar este proceso?", vbQuestion + vbYesNo, "Proceso: " & LST.Text) = vbYes Then
KillProcess LST2.Text
End If
End If
GetProcess
End Sub

Private Sub Form_Load()
GetProcess
End Sub

Private Sub LST_Click()
LST2.ListIndex = LST.ListIndex
End Sub

Private Sub Timer1_Timer()
Text1 = LST.ListIndex
End Sub

'Ya esta. Por cierto, está hecho en visual basic.

Saludos, espero que te sirva de ayuda

NeoGenessis
18-06-2003, 11:49
Hola The_chacal,
Yo tambien me hice un Killer con Visual basic. El problema es que en Win2000 no va. El tuyo funciona bien en plataforma NT? Yo utilice la APi enumprocess si no recuerdo mal.

Le hchare un vistazo en la documentacion de borland a ver si consigo revitalizarlo, ya que se quedaba en la bandeja del sistema y era muy util.

Saludos

The_chacal
18-06-2003, 21:20
Hola;

Pues no se si funcionará, yo solo lo he probado en mi ord (S.O; windows 98), y me va perfecto...

Si quieres copiate el código, lo compilas y pruebas si va.

Saludos.

NeoGenessis
25-07-2003, 10:55
gracias, pero he vuelto a Win98 + linux. Que le follen a Win2000!!!!

un saludo.

|RooT|
26-07-2003, 03:05
Que le follen al win2k y al 9x, y a todos....

gondar_f
26-07-2003, 12:44
No seamos radicales, que si no existiese windows, muchos no tendriamos trabajo.

Personalmente el WinY2K (Windows 2000) es el mejor sistema operativo que creo nunca microsoft, sin los problemas de los 9x, sin las idioteces del XP, y sin problemas de drivers como NT.

Mi eleccion es Windows 2000 + linux, y de vez en cuando QNX y Solaris

walbo
23-07-2006, 02:43
lamento ser tan novato, no creo tener el tiempo suficiente para buscar e instalar VB en mi PC y compilar el codigo, serian tan amables de postear una direccion donde pueda bajar el ejecutable de ese codigo??? me resultaria muy util, muchas gracias

smaug_
23-07-2006, 03:57
Pues si no tienes tiempo suficiente para buscar e instalarlo pero si para escribir y esperar a que te lo den todo hecho...
La proxima vez saca tiempo para leer las normas.
No vuelvas a pedir que te lo den todo hecho y mucho menos reabrir un post de hace 3 años.

Marchi
23-07-2006, 05:39
Ademas posteando lo mismo en varios lugares.

Cierro el post