'# Declaration de quelques fonctions API que l'on souhaite utiliser. '# VB ne les connais pas. Il faut dire ou les trouver, et quels parametres utiliser Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Sub Timer1_Timer() '# Fenetre active lors de l'iteration precedente Static LastActive As Long '# Fenetre active sur le systeme '# Utiliser GetActiveWindow pour connaitre la fenetre active dans l'application) Dim Active As Long Active = GetForegroundWindow '# Si c'est la même fenêtre qui est active, on quitte If LastActive = Active Then Exit Sub '# On récupère la longueur du titre Dim Length As Long: Length = GetWindowTextLength(Active) + 1 '# Afin de pouvoir reserver une chaine de caractères assez grande Dim Buffer As String: Buffer = Space$(Length) '# On récupère le titre Length = GetWindowText(Active, Buffer, Length) '# On supprime le caractère \0 final Buffer = Left$(Buffer, Length) '# On ajoute le titre dans la liste List1.AddItem Buffer '# Et on mémorise la fenetre qui etait active LastActive = Active End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question