Lister les fenêtres ouvertes [Résolu]

Signaler
Messages postés
289
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
28 février 2009
-
Messages postés
289
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
28 février 2009
-
Bonjours ! Voilà, je fais un anti-pop up et je dois connaîtres quelles sont les fenêtres ouvertes ( et non les processus ), et savoir comment acceder a leur propriété ( genre le titre,mais je pense savoir comment faire, mais seulement avec les DLL COM et si quelqu'un sait comment le faire en pur DotNet 2.0... ) et comment les fermer. Je sais que j'en demande beaucoup mais qui ne tente rien n'a rien alors...

Merci d'avance ! Bye ++
-=Ar$£nik=-

3 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Salut,

A ma connaissance aucun wrappage public n'a été fait dans la BCL pour donner accès à ce genre d'informations. Tu devras forcément passer par du PInvoke sur l'API de gestion des fenêtres.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
302
Date d'inscription
samedi 22 octobre 2005
Statut
Membre
Dernière intervention
2 novembre 2008
4
Pour le nom d'une fenetre tu as comme API : GetWindowsText et pour fermer une fenetre tu a l'api CloseWindow

http://www.secretswindows.com/index.php?rubrique=API&ssrubrique=A&ID=1&page=./api/detailfonction.php
Messages postés
289
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
28 février 2009
2
J'ai réussi, pour ceux que ça interesse :
        // Déclarations API et délégué :
        // --------------------------------------------------------------------------------------------------------
       
        [DllImport("user32")]
        public static extern int EnumWindows(EnumWindowsProc lpEnumFunc, int lParam);

        [DllImport("user32.dll")]
        public static extern int GetWindowText(IntPtr hWnd, [Out] StringBuilder lpString, int nMaxCount);
       
        [DllImport("user32.dll")]
        public static extern int GetWindowTextLength(IntPtr hWnd);
       
        [DllImport("user32.dll")]
        public static extern int SendMessage(int hWnd, uint Msg, int wParam,int lParam );
       
        public const int WM_SYSCOMMAND = 0x0112;
        public const int SC_CLOSE = 0xF060;

        public delegate bool EnumWindowsProc(IntPtr hwnd, int lParam);
       
        // --------------------------------------------------------------------------------------------------------

       
        public string[] ProcessList;
        public IntPtr[] ProcessHandle;
       
        public int ProcessCount=0;
public void CloseWindow(string Name){
           
            for(int i=0;i

-=Ar$£nik=-