| 
	
		|  Autor | Tema: Terminate Process XP  (Leído 1,789 veces) |  
	| 
			| 
					
						| Ch3ck 
								 
								
								 Desconectado 
								Mensajes: 337
								
								 
								Elite
								
								
								
								
								
								   | 
 
Holas, es que sabia como terminar un proceso en 98 con las APIs OpenProcess y TerminateProcess, pero cuando fui a un pc con xp ya no me funcionaba, quisiera saber con que APIs se puede hacer esto en xp. De antemano gracias por responder...   
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| dPix 
								
								 Desconectado 
								Mensajes: 222
								
								 
								¬_¬ - ¬O.o
								
								
								
								
								
								   | 
 
Hola Ch3ckM4t3r, pues a ver, en el Form (donde quieras) pones: KillProcessus "Aquí el proceso a matar"Y en un módulo a parte: Option ExplicitPrivate Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
 Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
 Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
 Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
 Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long
 Private Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
 Private Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
 Private Declare Function GetCurrentProcess Lib "kernel32" () 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 Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, lProcessID As Long) As Long
 
 Private Type LUID
 LowPart As Long
 HighPart As Long
 End Type
 
 Private Type LUID_AND_ATTRIBUTES
 pLuid As LUID
 Attributes As Long
 End Type
 
 Private Type TOKEN_PRIVILEGES
 PrivilegeCount As Long
 TheLuid As LUID
 Attributes As Long
 End Type
 
 
 Public Const MAX_PATH As Integer = 260
 Public Const TH32CS_SNAPPROCESS As Long = 2&
 
 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
 
 
 Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 
 Function ProcessTerminate(Optional lProcessID As Long, Optional lHwndWindow As Long) As Boolean
 Dim lhwndProcess As Long
 Dim lExitCode As Long
 Dim lRetVal As Long
 Dim lhThisProc As Long
 Dim lhTokenHandle As Long
 Dim tLuid As LUID
 Dim tTokenPriv As TOKEN_PRIVILEGES, tTokenPrivNew As TOKEN_PRIVILEGES
 Dim lBufferNeeded As Long
 
 Const PROCESS_ALL_ACCESS = &H1F0FFF, PROCESS_TERMINAT = &H1
 Const ANYSIZE_ARRAY = 1, TOKEN_ADJUST_PRIVILEGES = &H20
 Const TOKEN_QUERY = &H8, SE_DEBUG_NAME As String = "SeDebugPrivilege"
 Const SE_PRIVILEGE_ENABLED = &H2
 
 On Error Resume Next
 If lHwndWindow Then
 lRetVal = GetWindowThreadProcessId(lHwndWindow, lProcessID)
 End If
 
 If lProcessID Then
 lhThisProc = GetCurrentProcess
 
 OpenProcessToken lhThisProc, TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, lhTokenHandle
 LookupPrivilegeValue "", SE_DEBUG_NAME, tLuid
 tTokenPriv.PrivilegeCount = 1
 tTokenPriv.TheLuid = tLuid
 tTokenPriv.Attributes = SE_PRIVILEGE_ENABLED
 AdjustTokenPrivileges lhTokenHandle, False, tTokenPriv, Len(tTokenPrivNew), tTokenPrivNew, lBufferNeeded
 
 lhwndProcess = OpenProcess(PROCESS_TERMINAT, 0, lProcessID)
 
 If lhwndProcess Then
 ProcessTerminate = CBool(TerminateProcess(lhwndProcess, lExitCode))
 Call CloseHandle(lhwndProcess)
 End If
 End If
 On Error GoTo 0
 End Function
 
 Public Function KillProcessus(nom_process) As String
 Dim i As Integer
 Dim hSnapshot As Long
 Dim uProcess As PROCESSENTRY32
 Dim r As Long
 Dim nom(1 To 100)
 Dim num(1 To 100)
 Dim nr As Integer
 nr = 0
 hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
 If hSnapshot = 0 Then Exit Function
 uProcess.dwSize = Len(uProcess)
 r = ProcessFirst(hSnapshot, uProcess)
 Do While r
 nr = nr + 1
 nom(nr) = uProcess.szexeFile
 num(nr) = uProcess.th32ProcessID
 r = ProcessNext(hSnapshot, uProcess)
 Loop
 For i = 1 To nr
 If InStr(UCase(nom(i)), UCase(nom_process)) <> 0 Then
 ProcessTerminate (num(i))
 Exit For
 End If
 Next i
 End Function
 
Yo tenía este que me cogí hace tiempo y que he utilizado un par de veces, ahora estoy investigando a ver como hacerlo más corto, espero que te haya servido. Salu2,dPix
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Ch3ck 
								 
								
								 Desconectado 
								Mensajes: 337
								
								 
								Elite
								
								
								
								
								
								   | 
 
Ok gracias. |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | ERROR - Process Hollowing Programación C/C++
 | ThunderCls | 2 | 2,825 |  16 Agosto 2011, 20:28 pm por Karman
 |  
						|   |   | Process returned 0 Programación C/C++
 | m@o_614 | 6 | 3,967 |  21 Enero 2014, 04:06 am por m@o_614
 |  
						|   |   | No se visualizan eventos en Process Monitor Windows
 | d3xf4ult | 0 | 1,864 |  6 Octubre 2014, 10:49 am por d3xf4ult
 |  
						|   |   | Process interruptions n/a Programación C/C++
 | @XSStringManolo | 0 | 1,566 |  3 Junio 2019, 19:43 pm por @XSStringManolo
 |  
						|   |   | Process returned -1073741819 Programación C/C++
 | cyelph | 4 | 3,641 |  31 Mayo 2020, 16:23 pm por cyelph
 |    |