Déterminer si l'application est en cours d'exécution avec Excel

Objectif

Ai un fichier Excel avec un bouton "Recherche" qui s'ouvre d'un programme personnalisé. Ce programme est utilisé pour les études. Si le programme est déjà ouvert lorsque l'utilisateur clique sur le bouton, faire popup et de se concentrer sur ce programme.

Situation Actuelle

Voici le code que j'utilise pour le faire fonctionner:

Bouton De Recherche

Private Sub btnSearch_Click()
    Dim x As Variant
    Dim Path As String

    If Not IsAppRunning("Word.Application") Then
        Path = "C:\Tmp\MyProgram.exe"
        x = Shell(Path, vbNormalFocus)
    End If
End Sub

IsAppRunning()

Function IsAppRunning(ByVal sAppName) As Boolean
    Dim oApp As Object
    On Error Resume Next
    Set oApp = GetObject(, sAppName)
    If Not oApp Is Nothing Then
        Set oApp = Nothing
        IsAppRunning = True
    End If
End Function

Ce code ne fonctionne que quand j'ai mis "Mot.L'Application" que le fichier exécutable. Si j'ai essayer de mettre "MyProgram.L'Application" la fonction ne verra jamais le programme est en cours d'exécution. Comment puis-je savoir que "MyProgram.exe" est actuellement ouvert?

De plus, j'avais besoin de mettre l'accent sur...

Je suis un peu perplexe, pourquoi ne pouvez-vous pas juste de la sonde le modèle d'objet avec un peu de retard de la liaison à sourdement échapper à des erreurs de compilation? exceldevelopmentplatform.blogspot.com/2019/01/...

OriginalL'auteur Alex | 2015-04-22