tout d’abord il te faut un utilitaire pour regarder les Handles, celui ci fera tres bien l’affaire
http://viking.dvc.edu/~tnelson/newton/WWiz97f.exe
Sur ce soft tu repere le titre exacte de la fenetre a fermer (normalement le meme que sous windows) et tu releve aussi le nom du bouton a activer pour fermer (par ex: “Button”,“Exit”)
pour la source voici les API
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101
Private Const VK_SPACE = &H20
Private Const WM_CHAR = &H102
Private Declare Function FindWindow Lib “user32” Alias “FindWindowA” (ByVal lpClassName As String, ByVal lpWindowName As Any) As Long
Private Declare Function SetForegroundWindow Lib “user32” (ByVal hwnd As Long) As Long
Private Declare Function FindWindowEx Lib “user32” Alias “FindWindowExA” (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function PostMessage Lib “user32” Alias “PostMessageA” (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Pour le code c’est ici dans une procedure comme form_load ou un bouton
Dim m_hWnd As Long 'handle de la fenetre a fermer
Dim m_ButtonHwnd As Long 'handle du bouton a activer
m_hWnd = FindWindow(vbNullString, “Titre de la fenetre”)'si m_hwnd=0 c’est que la fenetre n’as pas ete trouvé
m_ButtonHwnd = FindWindowEx(m_hWnd, ByVal 0&, “Button”, “Ouvrir”)
si ton bouton n’est pas reconnu essaye
'm_ButtonHwnd = FindWindowEx(m_hWnd, ByVal 0&, “Ouvrir”, vbnullstring).
'Call SetForegroundWindow(m_hWnd)'met la fenetre en avant-plan.Pas obligatoire
'Simule l’appui du bouton
Call PostMessage(m_ButtonHwnd, WM_KEYDOWN, VK_SPACE, 0)
Call PostMessage(m_ButtonHwnd, WM_KEYUP, VK_SPACE, 0)
bonne prog
@+
Metalcoder