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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [Solucionado] Como puedo obtener el Process ID de un Programa (PID)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado] Como puedo obtener el Process ID de un Programa (PID)  (Leído 16,711 veces)
Karcrack


Desconectado Desconectado

Mensajes: 2.419


Se siente observado ¬¬'


Ver Perfil
Re: [Ayuda] Como puedo obtener el Process ID de un Programa (PID)
« Respuesta #20 en: 15 Noviembre 2009, 16:36 pm »

Forma mas simple, sin bucle...

Código
  1. Public Function GetPID(ByVal sImageName As String) As Long
  2.    Dim oExec       As Object
  3.  
  4.    Set oExec = CreateObject("WSCRIPT.SHELL").Exec("tasklist /FI ""IMAGENAME eq """ & sImageName & """"" /FO ""CSV"" /NH")
  5.  
  6.    GetPID = Val(Replace$(Split(oExec.StdOut.ReadAll(), ",")(1), Chr$(34), ""))
  7.  
  8.    Set oExec = Nothing
  9. End Function

Con WMI tambien se podria... (MOD: Añado code)
Código
  1. Public Function GetPID(ByVal sImageName As String) As Long
  2.    Dim oProc       As Object
  3.  
  4.    For Each oProc In GetObject("winmgmts:\\.\root\cimv2").ExecQuery _
  5.                    ("Select * from Win32_Process Where Name = '" & sImageName & "'")
  6.        GetPID = oProc.ProcessId
  7.    Next oProc
  8.  
  9.    Set oProc = Nothing
  10. End Function

Una peque~na nota, estos codes dan por hecho que solo hay un proceso con el mismo nombre...


« Última modificación: 15 Noviembre 2009, 16:48 pm por Karcrack » En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: [Ayuda] Como puedo obtener el Process ID de un Programa (PID)
« Respuesta #21 en: 15 Noviembre 2009, 17:59 pm »

Citar
Una peque~na nota, estos codes dan por hecho que solo hay un proceso con el mismo nombre...

Código:

Option Explicit

Private 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 * 260
End Type

Private Declare Function CreateToolhelp32Snapshot Lib "Kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function Process32First Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)

Private Sub Form_Load()
  MsgBox el_pid_str("svchost.exe")
  End
End Sub

Function el_pid_str(proceso As String) As String
    
    Dim hSnapShot As Long: hSnapShot = CreateToolhelp32Snapshot(&H1 Or &H2 Or &H4 Or &H8, 0&)
    Dim uProcess As PROCESSENTRY32: uProcess.dwSize = Len(uProcess)
    Dim r As Long: r = Process32First(hSnapShot, uProcess)
    
    Do While r
        If LCase(Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0)) > 0, InStr(1, uProcess.szExeFile, Chr$(0)) - 1, 0))) = LCase(proceso) Then
          el_pid_str = el_pid_str & uProcess.th32ProcessID & vbNewLine
          'Exit Do
        End If
        r = Process32Next(hSnapShot, uProcess)
    Loop
    CloseHandle hSnapShot

End Function









« Última modificación: 15 Noviembre 2009, 18:06 pm por Dessa » En línea

Adrian Desanti
Karcrack


Desconectado Desconectado

Mensajes: 2.419


Se siente observado ¬¬'


Ver Perfil
Re: [Ayuda] Como puedo obtener el Process ID de un Programa (PID)
« Respuesta #22 en: 15 Noviembre 2009, 18:13 pm »

Dessa, creo que seria mejor trabajar con un Array o un Collection...
En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: [Ayuda] Como puedo obtener el Process ID de un Programa (PID)
« Respuesta #23 en: 15 Noviembre 2009, 18:21 pm »

Ok, de acuerdo, es solo un ejemplo rapido

PD: WMI, tasklist o taskkill si valen... porque cuando yo los uso me "matan" aqui en el foro.

En línea

Adrian Desanti
Karcrack


Desconectado Desconectado

Mensajes: 2.419


Se siente observado ¬¬'


Ver Perfil
Re: [Ayuda] Como puedo obtener el Process ID de un Programa (PID)
« Respuesta #24 en: 15 Noviembre 2009, 22:12 pm »

Ok, de acuerdo, es solo un ejemplo rapido

PD: WMI, tasklist o taskkill si valen... porque cuando yo los uso me "matan" aqui en el foro.


:laugh: :laugh: Que recuerdos eh, Dessa? :xD

 :-* :P
En línea

Páginas: 1 2 [3] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como obtener la dirección ip local en Python [solucionado]
Scripting
Yeison.Eng 2 9,833 Último mensaje 31 Diciembre 2010, 19:49 pm
por Yeison.Eng
[SOLUCIONADO] Cómo puedo obtener el diseño de las tablas por query en mysql?
Bases de Datos
papita5 2 2,943 Último mensaje 7 Noviembre 2011, 00:06 am
por papita5
No puedo usar la clase Process en c++
Programación C/C++
FMLTGRD 3 1,325 Último mensaje 20 Noviembre 2014, 03:32 am
por FMLTGRD
(Solucionado) Ayuda obtener id de vb a c++
Programación C/C++
Cromatico 1 1,017 Último mensaje 28 Junio 2015, 01:36 am
por x64core
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines