par Michael DELIQUE » 05 Nov 2007 à 17:58
- Code : Tout sélectionner
Public Sub CloseActiveWindow_API(wTitreFenetreAfermer As String)
%REM
' Variables API pour la fonction CloseActiveWindow_API
Declare Function GetForegroundWindow Lib "User32" Alias "GetForegroundWindow" () As Long
Declare Function GetWindow Lib "user32" Alias "GetWindow" (Byval HWND As Long, Byval UINT As Integer) As Long
Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" (Byval hwnd As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (Byval HWND As Long, Byval LPTSTR As String, Byval nMaxCount As Integer) As Integer
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (Byval HWND As Long, Byval UINT As Integer, Byval WPARAM As Integer, Byval LPARAM As Integer) As Integer
Const GW_CHILD = 5
Const GW_HWNDNEXT = 2
Const WM_CLOSE = 16
%END REM
'Déclaration Variables
Dim hwnd As Long
Dim hwndMDI_1 As Long
Dim hwndChild As Long
Dim nRet As Integer
Dim iLongueurTitreFenetre As Integer
Dim sTitreFenetre As String
On Error Goto ErreurCloseActiveWindow_API
hwnd = GetForegroundWindow() 'obtention du handle de la fenêtre Notes actuelle
hwndMDI_1 = GetWindow( hwnd , GW_CHILD ) 'obtention du handle de la liste de fenêtres ouvertes (Multiple Document Interface)
hwndChild = GetWindow( hwndMDI_1 , GW_CHILD ) 'on parcours toutes les fenêtres actives et dès que le titre de la fenêtre à fermer est trouver, on ferme la vue
While hwndChild > 0
iLongueurTitreFenetre = GetWindowTextLength(hwndChild)
sTitreFenetre = String$(iLongueurTitreFenetre, " ") + Chr$(0)
Call GetWindowText(hwndChild, sTitreFenetre, 100)
If Left(sTitreFenetre, iLongueurTitreFenetre) = wTitreFenetreAfermer Then
Call PostMessage(hwndChild, WM_CLOSE, 0, 0 )
End If
hwndChild = GetWindow( hwndChild , GW_HWNDNEXT )
Wend
Exit Sub
ErreurCloseActiveWindow_API:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Exit Sub
End Sub
Cordialement
Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN