elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [Duda] detectar proceso activo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] detectar proceso activo  (Leído 5,470 veces)
dashrender

Desconectado Desconectado

Mensajes: 2


Ver Perfil
[Duda] detectar proceso activo
« en: 25 Febrero 2009, 19:51 pm »

Hola amigos q tal.. tengo una duda ... si se podria detectar en vB tal proceso activo por ejemplo : svchost.exe ...  si esta activo en un textbox q salga ON si no OFF


En línea

xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: [Duda] detectar proceso activo
« Respuesta #1 en: 25 Febrero 2009, 19:59 pm »

mira este Link: http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/42.htm


En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: [Duda] detectar proceso activo
« Respuesta #2 en: 26 Febrero 2009, 02:19 am »

Hola, proba algo asi:

Código
  1. Option Explicit
  2.  
  3. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  4. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  5. Private Declare Function EnumProcesses Lib "PSAPI.DLL" (lpidProcess As Long, ByVal cb As Long, cbNeeded As Long) As Long
  6. Private Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, lphModule As Long, ByVal cb As Long, lpcbNeeded As Long) As Long
  7. Private Declare Function GetModuleBaseName Lib "PSAPI.DLL" Alias "GetModuleBaseNameA" (ByVal hProcess As Long, ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
  8. Private Const PROCESS_VM_READ = &H10
  9. Private Const PROCESS_QUERY_INFORMATION = &H400
  10.  
  11. Private Function EstaCorriendo(ByVal NombreDelProceso As String) As Boolean
  12.    Const MAX_PATH As Long = 260
  13.    Dim lProcesses() As Long, lModules() As Long, N As Long, lRet As Long, hProcess As Long
  14.    Dim sName As String
  15.    NombreDelProceso = UCase$(NombreDelProceso)
  16.    ReDim lProcesses(1023) As Long
  17.  
  18.    If EnumProcesses(lProcesses(0), 1024 * 4, lRet) Then
  19.        For N = 0 To (lRet \ 4) - 1
  20.            hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lProcesses(N))
  21.            If hProcess Then
  22.                ReDim lModules(1023)
  23.                If EnumProcessModules(hProcess, lModules(0), 1024 * 4, lRet) Then
  24.                    sName = String$(MAX_PATH, vbNullChar)
  25.                    GetModuleBaseName hProcess, lModules(0), sName, MAX_PATH
  26.                    sName = Left$(sName, InStr(sName, vbNullChar) - 1)
  27.                    If Len(sName) = Len(NombreDelProceso) Then
  28.                        If NombreDelProceso = UCase$(sName) Then EstaCorriendo = True: Exit Function
  29.                    End If
  30.                End If
  31.            End If
  32.            CloseHandle hProcess
  33.        Next N
  34.    End If
  35. End Function
  36.  
  37. Private Sub Command1_Click()
  38.    MsgBox EstaCorriendo("calc.exe")
  39. End Sub
  40.  

saludos.
En línea

ricardovinzo

Desconectado Desconectado

Mensajes: 135


P.T.C


Ver Perfil
Re: [Duda] detectar proceso activo
« Respuesta #3 en: 26 Febrero 2009, 03:36 am »

Una mas:

http://foro.code-makers.es/mlitleprocmanager_para_trabajar_con_procesos-t2361.0.html
En línea

3# Convocacion de Moderadores en Code Makers, entra!
Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: [Duda] detectar proceso activo
« Respuesta #4 en: 27 Febrero 2009, 11:01 am »

hola dashrender, en el caso que en lugar de ser un proceso (como svchost.exe), busques una aplicación (oculta o visible), pòdes usar solamente FindWindows.

PD: Buen code Seba

Saludos

En línea

Adrian Desanti
dashrender

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [Duda] detectar proceso activo
« Respuesta #5 en: 4 Marzo 2009, 15:52 pm »

hola seba123neo   el codigo q me daste es genial funciona de maravillas.. me podrias ayudar en vez de que salga en msgbox "falso" o "verdadero" pueda salir en un label? pero que se actualize si ese "proceso" esta "activo" o "no" sin darle click ...
En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: [Duda] detectar proceso activo
« Respuesta #6 en: 4 Marzo 2009, 16:38 pm »

Código:

Option Explicit

Private 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 EnumProcesses Lib "PSAPI.DLL" (lpidProcess As Long, ByVal cb As Long, cbNeeded As Long) As Long
Private Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, lphModule As Long, ByVal cb As Long, lpcbNeeded As Long) As Long
Private Declare Function GetModuleBaseName Lib "PSAPI.DLL" Alias "GetModuleBaseNameA" (ByVal hProcess As Long, ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Private Const PROCESS_VM_READ = &H10
Private Const PROCESS_QUERY_INFORMATION = &H400

Private Function EstaCorriendo(ByVal NombreDelProceso As String) As Boolean
Const MAX_PATH As Long = 260
Dim lProcesses() As Long, lModules() As Long, N As Long, lRet As Long, hProcess As Long
Dim sName As String
NombreDelProceso = UCase$(NombreDelProceso)
ReDim lProcesses(1023) As Long

If EnumProcesses(lProcesses(0), 1024 * 4, lRet) Then
For N = 0 To (lRet \ 4) - 1
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lProcesses(N))
If hProcess Then
ReDim lModules(1023)
If EnumProcessModules(hProcess, lModules(0), 1024 * 4, lRet) Then
sName = String$(MAX_PATH, vbNullChar)
GetModuleBaseName hProcess, lModules(0), sName, MAX_PATH
sName = Left$(sName, InStr(sName, vbNullChar) - 1)
If Len(sName) = Len(NombreDelProceso) Then
If NombreDelProceso = UCase$(sName) Then EstaCorriendo = True: Exit Function
End If
End If
End If
CloseHandle hProcess
Next N
End If
End Function



Private Sub Form_Load()
Timer1.Interval = 300
Label1 = ""
End Sub

Private Sub Timer1_Timer()
If EstaCorriendo("calc.exe") = True Then
  Label1 = "ACTIVO"
Else
  Label1 = "INACTIVO"
End If
End Sub


« Última modificación: 4 Marzo 2009, 18:05 pm por Dessa » En línea

Adrian Desanti
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Detectar finalización proceso contador de un programa.
Ingeniería Inversa
Mustakrakish 4 2,752 Último mensaje 20 Diciembre 2010, 22:56 pm
por Mustakrakish
Detectar injeccio a un proceso.
Programación C/C++
Destro- 2 2,121 Último mensaje 12 Enero 2011, 21:33 pm
por Destro-
Duda para detectar arp spoofing
Hacking
Frenes 4 4,384 Último mensaje 24 Diciembre 2012, 23:13 pm
por adastra
Detectar antivirus activo desde cmd (Ayuda)
Windows
pilotcast 4 3,514 Último mensaje 29 Abril 2013, 19:48 pm
por pilotcast
Detectar Proceso Padre (VB.net)
.NET (C#, VB.NET, ASP)
**Aincrad** 6 2,990 Último mensaje 17 Marzo 2019, 20:56 pm
por **Aincrad**
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines