Determinar en vba 5 o 6 si una aplicación esta en uso

Sres. T. E.

Favor revisar el siguiente código para que me informe cual es el problema.:

(ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long

Private Sub Command1_Click()

Dim Ventana As Long

Ventana = FindWindow(vbNullString, "calculadora")
If Ventana = 0 Then
MsgBox ("La Calculadora no esta abierta")
Else
MsgBox ("La Calculadora ya esta abierta")
End If

End Sub

Obviamante tenes que cambiar "Calculadora" por el nombre del programa que queres cerrar, es decir, lo que aparece en
La barra de títulos de la ventana del programa en cuestión.

NOTA he cambiado el nombre del programa por otro, como Outlook 2010, excel 2003 y otros, el mensaje que muestra es que no esta abierto en realidad si lo esta, ¿Qué hacer para que me funcione?

Respuesta

No sé si lo pudiste resolver pero te dejo esta función.

Uso vba 7 porque uso el office 16.

Escribe OUTLOOK.EXE en cualquier celda y al usar la función has de seleccionar la celda donde pusiste la palabra OUTLOOK.EXE. Si se está usando saldrá VERDADERO y si no FALSO

Public Function PROCESO_ACTIVO(ARG_1_Nombre_Proceso As String) As Boolean
    PROCESO_ACTIVO = False
    Dim ListaProcesos As Object
    Dim ObjetoWMI As Object
    Dim ProcesoConcreto As Object
    Set ObjetoWMI = GetObject("winmgmts:")
    If IsNull(ObjetoWMI) = False Then
        Set ListaProcesos = ObjetoWMI.InstancesOf("win32_process")
        For Each ProcesoConcreto In ListaProcesos
            If (ProcesoConcreto.Name = ARG_1_Nombre_Proceso) Then
                PROCESO_ACTIVO = True
                Exit For
            End If
        Next
    End If
    Set ListaProcesos = Nothing
    Set ObjetoWMI = Nothing
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas