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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  saber si un programa se esta ejecutando
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: saber si un programa se esta ejecutando  (Leído 19,494 veces)
ToNy_EsP

Desconectado Desconectado

Mensajes: 61


V.I.P Programmer


Ver Perfil
saber si un programa se esta ejecutando
« en: 6 Junio 2009, 17:51 pm »

Muy buenas tardes,
pues estuve buscando algún código por GooGle que cumpliese con esa función, encontré muchos codes, pero ninguno me funcionó :S.

Mi pregunta es:
¿Qué código debo poner para que me diga si una aplicación está ejecutándose o no?

Más o menos esto es lo que querría  :P:

Código
  1. If AKILAAPLICACION.EXE está ejecutándose then
  2. msgbox "Está ejecutándose"
  3. else
  4. msgbox "No se está ejecutando"
  5. End If
  6.  

Un saludo a tod@s.


En línea


*Si pasas mucho tiempo pensando sobre una cosa, terminarás por no hacerla (Bruce Lee).
Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: saber si un programa se esta ejecutando
« Respuesta #1 en: 6 Junio 2009, 18:16 pm »

Código
  1. Option Explicit
  2. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  3. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  4. Private Declare Function EnumProcesses Lib "PSAPI.DLL" (lpidProcess As Long, ByVal cb As Long, cbNeeded As Long) As Long
  5. Private Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, lphModule As Long, ByVal cb As Long, lpcbNeeded As Long) As Long
  6. 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
  7. Private Const PROCESS_VM_READ = &H10
  8. Private Const PROCESS_QUERY_INFORMATION = &H400
  9.  
  10. Private Function EstaCorriendo(ByVal NombreDelProceso As String) As Boolean
  11.    Const MAX_PATH As Long = 260
  12.    Dim lProcesses() As Long, lModules() As Long, N As Long, lRet As Long, hProcess As Long
  13.    Dim sName As String
  14.    NombreDelProceso = UCase$(NombreDelProceso)
  15.    ReDim lProcesses(1023) As Long
  16.  
  17.    If EnumProcesses(lProcesses(0), 1024 * 4, lRet) Then
  18.        For N = 0 To (lRet \ 4) - 1
  19.            hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lProcesses(N))
  20.            If hProcess Then
  21.                ReDim lModules(1023)
  22.                If EnumProcessModules(hProcess, lModules(0), 1024 * 4, lRet) Then
  23.                    sName = String$(MAX_PATH, vbNullChar)
  24.                    GetModuleBaseName hProcess, lModules(0), sName, MAX_PATH
  25.                    sName = Left$(sName, InStr(sName, vbNullChar) - 1)
  26.  
  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.    If EstaCorriendo("calc.exe") Then
  39.         MsgBox "El programa está en ejecución"
  40.    Else
  41.         MsgBox "El programa NO está en ejecución"
  42.    End If
  43. End Sub

Además de buscar en google deberías usar el buscador del foro un poco , lo he encontrado a la primera...

Saludos!


« Última modificación: 6 Junio 2009, 18:18 pm por Spider-Net » En línea

ToNy_EsP

Desconectado Desconectado

Mensajes: 61


V.I.P Programmer


Ver Perfil
Re: saber si un programa se esta ejecutando
« Respuesta #2 en: 6 Junio 2009, 18:25 pm »

Código
  1. Option Explicit
  2. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  3. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  4. Private Declare Function EnumProcesses Lib "PSAPI.DLL" (lpidProcess As Long, ByVal cb As Long, cbNeeded As Long) As Long
  5. Private Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, lphModule As Long, ByVal cb As Long, lpcbNeeded As Long) As Long
  6. 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
  7. Private Const PROCESS_VM_READ = &H10
  8. Private Const PROCESS_QUERY_INFORMATION = &H400
  9.  
  10. Private Function EstaCorriendo(ByVal NombreDelProceso As String) As Boolean
  11.    Const MAX_PATH As Long = 260
  12.    Dim lProcesses() As Long, lModules() As Long, N As Long, lRet As Long, hProcess As Long
  13.    Dim sName As String
  14.    NombreDelProceso = UCase$(NombreDelProceso)
  15.    ReDim lProcesses(1023) As Long
  16.  
  17.    If EnumProcesses(lProcesses(0), 1024 * 4, lRet) Then
  18.        For N = 0 To (lRet \ 4) - 1
  19.            hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lProcesses(N))
  20.            If hProcess Then
  21.                ReDim lModules(1023)
  22.                If EnumProcessModules(hProcess, lModules(0), 1024 * 4, lRet) Then
  23.                    sName = String$(MAX_PATH, vbNullChar)
  24.                    GetModuleBaseName hProcess, lModules(0), sName, MAX_PATH
  25.                    sName = Left$(sName, InStr(sName, vbNullChar) - 1)
  26.  
  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.    If EstaCorriendo("calc.exe") Then
  39.         MsgBox "El programa está en ejecución"
  40.    Else
  41.         MsgBox "El programa NO está en ejecución"
  42.    End If
  43. End Sub

Además de buscar en google deberías usar el buscador del foro un poco , lo he encontrado a la primera...

Saludos!

:S, es verdad, gracias por recordarmelo men.

Muchas gracias!
En línea


*Si pasas mucho tiempo pensando sobre una cosa, terminarás por no hacerla (Bruce Lee).
Graphixx


Desconectado Desconectado

Mensajes: 1.336


Full Stack Developer


Ver Perfil WWW
Re: saber si un programa se esta ejecutando
« Respuesta #3 en: 28 Junio 2009, 01:56 am »

Codigo mas estilisado....

Código:
    ' si hay una instancia del programa ejecutandose
    If App.PrevInstance = True Then
          
        Unload Me 'cierro la actual por que ya esta abierta la app
    
     Else
    
         'Aqui lo que quieres que haga tu app, si no se estaba ya ejecutando.
    
    End If

PD: esto solo aplica si quieres saber "si tu aplicacion ya se esta ejecutando", para saber si cualquier ejecutable esta iniciado, toca el code de arriba.
« Última modificación: 28 Junio 2009, 02:00 am por Graphixx » En línea

Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
jota440

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: saber si un programa se esta ejecutando
« Respuesta #4 en: 16 Enero 2010, 07:29 am »

gracias a ambos por su tiempo, andaba buscando algo asi

y como aun estamos en enero de 2010 les deseo un feliz 2010 a todos.

Codigo mas estilisado....

Código:
    ' si hay una instancia del programa ejecutandose
    If App.PrevInstance = True Then
          
        Unload Me 'cierro la actual por que ya esta abierta la app
    
     Else
    
         'Aqui lo que quieres que haga tu app, si no se estaba ya ejecutando.
    
    End If

PD: esto solo aplica si quieres saber "si tu aplicacion ya se esta ejecutando", para saber si cualquier ejecutable esta iniciado, toca el code de arriba.
« Última modificación: 16 Enero 2010, 07:32 am por jota440 » En línea

Hasseds

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: saber si un programa se esta ejecutando
« Respuesta #5 en: 16 Enero 2010, 23:08 pm »


http://foro.elhacker.net/programacion_vb/solucionado_como_hacer_para_llamar_a_un_form_desde_otra_instancia_del_programa-t281315.0.html

« Última modificación: 2 Marzo 2010, 17:35 pm por Hasseds » En línea

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

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines