|
|
|
|
|
- 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
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|