Permet en quelques lignes de fermer un programme, une application, une fenêtre... en passant en paramètre son nom exact ou partiel.
Source / Exemple :
Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag 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 GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Sub FermeFentre(NomPartielDeLaFenetreAFermer As String, tHwnd As Long)
Dim NomFenetre As String
'Liste toutes les fenetres
Do While tHwnd <> 0
NomFenetre = Space$(GetWindowTextLength(tHwnd))
GetWindowText tHwnd, NomFenetre, Len(NomFenetre) + 1
If InStr(1, NomFenetre, NomPartielDeLaFenetreAFermer) <> 0 Then 'c'est la fenetre recherchée
'ferme la fenetre
PostMessage tHwnd, &H10, 0, 0
Exit Sub 'pas la peine de continuer (sauf si vous cherchez plusieurs fenetres avec ce nom)
End If
'initialise le test de la fenetre suivante
tHwnd = GetNextWindow(tHwnd, 2)
Loop
MsgBox "La fenêtre demandée n'a pas été trouvée.", vbExclamation 'si vous avez laissé le exit sub
End Sub
Conclusion :
inspiré de la source d'Antislash :
http://www.vbfrance.com/codes/MASQUER-AFFICHER-FERMER-FENETRES-ACTIVES_4596.aspx
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.