PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Exemple : Appel d'une fonction de l'API Windows avec CallBack
Exemple : Appel d'une fonction de l'API Windows avec CallBack
L'exemple suivant permet d'établir un fichier de trace contenant tous les identifiants (Handle) des fenêtres Windows actuellement ouvertes sur le poste en cours.
La procédure LanceUneTrace ouvre le fichier de trace et lance l'énumération des fenêtres grâce à la fonction EnumWindows de l'API User32.
La procédure ProcEnumFenêtre est appelée par la fonction EnumWindows de l'API User32 pour chaque fenêtre trouvée. Cette procédure permet d'écrire l'identifiant de la fenêtre trouvée dans le fichier de trace.
PROCÉDURE LanceUneTrace()
// On ouvre le fichier
nFichier est un entier = fOuvre(fRepDonnées() + ...
"\TitresEtClassesDesFenetres.txt", foCréation)
SI nFichier = -1 ALORS
Erreur("Problème fichier")
FinProgramme()
FIN
// On lance l'énumération avec en paramètre l'identifiant du fichier ouvert
// (il sera passé en paramètre à la CallBack)
API("User32", "EnumWindows", &ProcEnumFenêtre, nFichier)
// On ferme le fichier
fFerme(nFichier)
// Affichage dans une fenêtre de trace
Trace(fChargeTexte(fRepDonnées() + "\TitresEtClassesDesFenetres.txt"))
// ----- Avec la procédure suivante :
// nHwnd est le paramètre reçu de la fonction de l'API
// avec le handle de la fenêtre
// nIDFichier est le paramètre qui a été passé
// lors de l'appel de la fonction de l'API
PROCÉDURE ProcEnumFenêtre(nHwnd est un entier système, ...
nIDFichier est un entier système)
nTailleMaxNomClasse est un entier = 1024
sNomClasseDeFenetre est une chaîne ASCIIZ sur 1024
sTitreFenetre est une chaîne
 
// Récupération de la classe Windows de la fenêtre
API("user32.dll", "GetClassNameA", nHwnd, &sNomClasseDeFenetre, ...
nTailleMaxNomClasse)
// Récupération du titre de la fenêtre
sTitreFenetre = SysFenTitre(nHwnd)
SI sTitreFenetre ~= "" ALORS sTitreFenetre="<sans titre>"
 
// Ecriture dans le fichier de l'identifiant passé en paramètre
fEcritLigne(nIDFichier, sTitreFenetre + "," + sNomClasseDeFenetre)
SI sNomClasseDeFenetre ~= "Nom de classe de fenêtre cherchée" ALORS
// Arrêt de l'énumération
RENVOYER Faux
SINON
// L'énumération continue
RENVOYER Vrai
FIN
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire