Lister les fenêtres ouvertes

Résolu
MaxSoldier Messages postés 289 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 28 février 2009 - 21 juil. 2006 à 19:52
MaxSoldier Messages postés 289 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 28 février 2009 - 22 juil. 2006 à 16:12
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
21 juil. 2006 à 20:05
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
*/
3
iow4 Messages postés 302 Date d'inscription samedi 22 octobre 2005 Statut Membre Dernière intervention 2 novembre 2008 4
22 juil. 2006 à 00:08
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
3
MaxSoldier Messages postés 289 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 28 février 2009 2
22 juil. 2006 à 16:12
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=-
0
Rejoignez-nous