Recherche
Recherche
Les mémos
Je débute...
Visites

 996166 visiteurs

 6 visiteurs en ligne

Lister et/ou fermer des applications actives

Pour fermer une application, on écrira par exemple :

KillApp "Microsoft Excel - classeur.xls"


 

Option Compare Database
Option Explicit
'/
'/ A placer dans la partie déclarative
'/
Declare Function EnumWindows Lib "user32" (ByVal wndenmprc As Long, _
                                           ByVal lParam As Long) As Long

Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
                               (ByVal hwnd As Long, ByVal lpString As String, _
                                ByVal cch As Long) As Long

Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
                             (ByVal hwnd As Long, ByVal wMsg As Long, _
                              ByVal wParam As Long, lParam As Any) As Long

Private AppCible As String

 La sub  qui permet l'appel...

Public Sub KillApp(App_Cherchee As String)
    AppCible = App_Cherchee
    EnumWindows AddressOf EnumCallback, 0
End Sub

... à la fonction

Public Function EnumCallback(ByVal app_hWnd As Long, ByVal param As Long) As Long
    Dim buf As String * 256
    Dim Titre As String
    Dim Longueur As Long
    Const WM_CLOSE = &H10

    Longueur = GetWindowText(app_hWnd, buf, Len(buf))
    Titre = Left$(buf, Longueur)

    If InStr(Titre, AppCible) <> 0 Then
        If MsgBox("Voulez vous fermer l'application " & Titre, _
                  vbQuestion + vbYesNo, "Fermeture") = vbYes Then
            'ferme l'appli
            SendMessage app_hWnd, WM_CLOSE, 0, 0
        End If
    End If

    'Poursuit l'énumération
    EnumCallback = 1

End Function


Catégorie : Les mémos - Administration
Page lue 3715 fois