Afficher une fenêtre d'après le nom de son exécutable

cs_tonymitchelli Messages postés 4 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 28 juin 2005 - 28 juin 2005 à 17:14
CTAC Messages postés 133 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 8 juin 2012 - 28 juin 2005 à 23:00
Bonsoir à tous,

Je recherche un moyen d'afficher une fenêtre en connaissant le nom de l'exécutable par lequel elle a été lancée. Nom qui figure dans la liste des processus du Gestionnaire des tâches de Windows...
Pour le moment, j'ai essayé avec 'FindWindow' mais cette API n'utilise que le titre de la fenêtre.

Quelqu'un pourrait-il m'aider SVP ?

Merci bcp par avance

Mitchelli

1 réponse

CTAC Messages postés 133 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 8 juin 2012 5
28 juin 2005 à 23:00
Bonjour.

Cet exemple permet de fermer une instance de notepad.
A coller dans un module standard et a adapter bien sur.

ctac

Private Declare Function EnumWindows& _
Lib "user32" _
(ByVal lpEnumFunc&, ByVal lngParam&)


Private Declare Function SendMessage& _
Lib "user32" Alias "SendMessageA" _
(ByVal Hwnd&, ByVal wMsg&, ByVal wParam&, lParam As Any)


Private Declare Function GetWindowModuleFileName& _
Lib "user32" Alias "GetWindowModuleFileNameA" _
(ByVal Hwnd&, ByVal pszFileName$, ByVal cchFileNameMax&)


Private AppHwnd&, NomExe$


Sub FermeNotepad()
Const WM_CLOSE& = &H10&
NomExe = StrConv("C:\Windows\notepad.exe", vbUpperCase)
EnumWindows AddressOf EnumWindowsProc, 0&
If AppHwnd Then SendMessage AppHwnd, WM_CLOSE, 0&, 0&
End Sub


Private Function EnumWindowsProc&(ByVal Hwnd&, ByVal lngParam&)
Const MAX_PATH& = 260&
Dim Lexe$
Lexe = Space$(MAX_PATH)
GetWindowModuleFileName Hwnd, Lexe, MAX_PATH
If StrConv(Left$(Lexe, InStr(Lexe, vbNullChar) - 1&), _
vbUpperCase) = NomExe Then
AppHwnd = Hwnd
Exit Function
End If
EnumWindowsProc = True
End Function
0
Rejoignez-nous