none
Arborescence des fenêtres RRS feed

  • Question

  • Bonjour tout le monde,

    Je cherche à réviser un grand classique : l'exploration de l'arborescence des fenêtres Windows.

    Pour l'affichage, à gauche, des caractères dédiés permettent de mettre en évidence la dépendance des fenêtres entre elles, et à droite apparaissent le hWnd et l'intitulé.

    Mais Visual Studio comporte tellement de fonctionnalités pour la gestion de ses fenêtres, que lorsque je cherche C# arborescence fenêtres, c'est ça qui sort.

    J'imagine qu'en défilant de quelques dizaines de pages je finirais bien par tomber sur ce que je cherche, mais est-ce qu'un critère de recherche plus judicieux permet d'y arriver plus rapidement ?

    Par ailleurs, est-ce qu'il faut réinventer l'eau tiède, ou est-ce que des fonctions toutes prêtes permettent de visualiser l'arborescence en partant d'un hWnd puis passer à autre chose ?

    lundi 26 avril 2021 23:21

Toutes les réponses


  • Bonjour,

    Je ne suis pas sûre de comprendre la question. Еst-ce que cette arborescence des fenêtres est lié à Visual Studio (par exemple: Afficher la structure du code à l’aide de différentes fenêtres outil) ou il s'agit d'un projet avec, par exemple, TreeView (Windows Forms)/ TreeView (UWP) ou Desktop Win32 apps - Utilisation de contrôles Tree-View.
    Dans votre recherche essayez d'ajouter plusieurs mots-clés pour obtenir un résultat plus précis. Essayez aussi avec le mot-clé "tree view".

    Cordialement,
    Nina



    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mardi 27 avril 2021 08:21
    Modérateur
  • Bonjour,

    Non non comme disais c'est le grand classique : les fenêtres de Windows.

    J'ai de trop petits yeux pour lire la fenêtre d'information d'Irfanview, et je n'ai pas trop envie d'afficher la barre de titre.

    Le raisonnement était, en partant de la fenêtre principale, de lister son arborescence pour trouver la fenêtre qui a pour titre le nom de l'image. Peut-être d'ailleurs faudra-t-il d'abord monter d'un ou deux niveaux.

    Au demeurant il se peut que je trouve plus simple  : en mettant le curseur sur le bord de la fenêtre, avec WindowFromPoint, j'ai bien une fenêtre dont le nom est celui de l'image.

    Donc finalement, à partir du hWnd, il faut que je trouve les coordonnées des bords. Je viens juste de me rendre compte de ça, donc je n'ai pas encore cherché dans cette direction.

    mardi 27 avril 2021 10:55
  • Traditionnellement, depuis C# les appels aux API Windows se faisaient via pinvoke.

    Je me rappelle avoir reçu un mail il y a quelques semaines m'informant d'une meilleure intégration de ces opérations au langage.

    Est-ce bien de ceci qu'il s'agit ?

    https://blogs.windows.com/windowsdeveloper/2021/01/21/making-win32-apis-more-accessible-to-more-languages/

    mardi 27 avril 2021 11:06
  • Pour ce projet-ci je suis arrivé à mes fins : la hiérarchie n'est pas la seule relation entre les deux fenêtres, il y a aussi la position sur l'écran. Donc, une fois que j'ai récupéré le rectangle correspondant à la fenêtre visible, à partir du coin en haut à gauche je me déplace de 2 vers le gauche et 10 vers le bas, et là avec WindowFromPoint j'obtiens une fenêtre dont le titre est le nom de l'image.

    J'appelle les API à l'ancienne, en récupérant les signatures sur pinvoke.net, car j'ai vu passer un beau projet qui crée une référence avec les fonctions API disponibles avec l'intellisense, mais dans le forum attenant il est indiqué il y a deux ans que le produit ne s'installe pas, et ça n'a pas l'air solutionné (le bouton Installer ne déclenche aucune réaction visible).

    Maintenant que j'ai posé la question sur comment rassembler les informations sur une arborescence de fenêtres Windows, même si je n'en ai plus besoin dans l'immédiat, ça peut toujours servir, donc si quelqu'un a connaissance d'un effort d'automatisation qui ait été accompli dans ce domaine ...

    Comment on fait, je mets ça en discussion plutôt que question, maintenant que le projet tourne ?


    • Modifié Gloops mardi 27 avril 2021 15:37
    mardi 27 avril 2021 15:32