Activapp - nom de l'application active

Soyez le premier à donner votre avis sur cette source.

Vue 8 605 fois - Téléchargée 616 fois

Description

[vb 5.0]
En relation avec mon programme Big Brother voici la partie du code concernant la liste des applications qui ont le focus.

Tout est commenté.

Source / Exemple :


/* Créez une form de et mettez y : 1 Listbox et 1 timer d'interval 1 et de nom Tmr */

Private Sub Tmr_Timer()
'Déclare 2 nouvelles variables :
'Entree qui contiendra la phrase finale à enregistrer
'hwnd qui recupere le handle de la fenêtre qui a le focus
Dim Entree As String, hwnd As Long
    
    'On définit pour valeur au handle celui de la fenêtre
    'avec laquelle l'utilisateur travaille (ou regarde :p)
    hwnd = GetForegroundWindow
    
        'Pour éviter de remettre chaque seconde la même
        'fenêtre on vérifie qu'elle n'a pas déja été
        'notée
        If hwnd <> App_hwnd Then
        App_hwnd = hwnd
        
        'Ici on défnit pour valeur a la variable string
        'le nom de l'application qui a le handle "hwnd"
        'et dont le nom est retourné par la fonction du
        'module
        App_Title = Titreapplication(hwnd)
    
            'Routine qui vérifie que l'application à bien
            'un titre, sinon ça fait polio d'afficher
            'un horaire avec du vide :p
            If App_Title <> "" Then
            'Ici c'est de la mise en forme : on met entre
            'crochet l'heure actuelle et on marque ensuite
            'le nom de l'application active
            Entree = "[" & DateTime.Time & "] " & App_Title
            'Ajoute le résultat à la fenêtre
            List1.AddItem Entree
            End If
        End If
End Sub

/* Placez ceci dans un module de nom quelconque

Option Explicit
'Variable pour récuperer le handle précédent de la fenêtre (voir Form1)
Global App_hwnd As Long
'Variable pour récupérer le nom de la fenêtre
Global App_Title As String

'Variable à déclarer
'Cette fonction recupere le text de la fenêtre avec 3 arguments :
' - le handle de la fenêtre
' - le buffer qui contiendra le texte
' - la longueur maximale du nom de l'application
Public Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

'Cette fonction recupere la longeur du titre de l'application
'par son handle. Ici elle servira a fournir la longueur
'maximale du titre a récupérer via GetWindowText (dernier argument)
Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

'Cette fonction sert a renvoyer le handle de la fenêtre qui
'a le focus, ou bien si vous préferez sur laquelle on travaille
Public Declare Function GetForegroundWindow Lib "user32.dll" () As Long

'Fonction qui sert a obtenir le nom de l'application active.
'Son argument est le handle renvoyé dans le Timer via la
'fonction GetForegroundWindow
Function Titreapplication(hwnd As Long)
'Variable pour obtenir la longueur du titre ainsi que sont nom
Dim hWndlength As Long, hWndTitle As String, returnvalue As Long

    'Longeur du titre envoyée dans la variable via la fonction
    hWndlength = GetWindowTextLength(hwnd)
    'Création d'un buffer
    hWndTitle = String$(hWndlength, 0)
    'Recupere finalement le titre de la fenêtre de handle
    'hwnd, pour le mettre dans le buffer de taille adaptée, et
    'avec une longeur maximale de caractère obtenu plus haut
    '+ 1 avec le caractère NULL
    returnvalue = GetWindowText(hwnd, hWndTitle, (hWndlength + 1))
    'Finalement, on retourne le tout
    Titreapplication = hWndTitle
End Function

Conclusion :


Voila, en éspérant que ca vous sera d'un grand secours, si vous avez des questions ou autres, venez commentez :p

http://www.kephren.fr.fm/

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_LordBob
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
8 -
exelent ton application pourra m'aider a faire un programme ou je kiche... merci...
cs_Kephren
Messages postés
54
Date d'inscription
dimanche 25 novembre 2001
Statut
Membre
Dernière intervention
19 mai 2003
-
De rien :p
math083
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009
-
Merci pour cette source, grace a toi je suis arrivé à terminer mon projet. Merci pour tout
SkyRocKo
Messages postés
174
Date d'inscription
samedi 10 mai 2003
Statut
Membre
Dernière intervention
18 février 2006
-
Génial :) 20/10

Bravo à toi : la source est claire et bien commentée !!!

Bonne continuation
cs_ying
Messages postés
8
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
21 octobre 2014
-
Domage, ça renvoie le texte de la barre de titre de la fenêtre active mais pas le nom de l'application active !

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.