IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

[C#] Liste de process comme dans la Alt+Tab


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Concepteur/Développement
    Inscrit en
    Juin 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur/Développement
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2004
    Messages : 60
    Par défaut [C#] Liste de process comme dans la Alt+Tab
    Bonjour,

    question idiote mais pas moyen de trouver un réponse sur le net.
    Je sais que pour obtenir les process il suffit d'interroger le GetProcess().
    Mais comment identifier les applications comme le fait le Alt+Tab ?!

    J'ai bien filtre sur le MainWindowTitle ou le MainWindowHandle (!= Ptr.Zero) mais il me sort des applications que je ne vois pas dans la Alt+Tab.

    Si quelqu'un a le test manquant !

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Essaie d'en savoir un peu plus sur la fenêtre avec les API Windows... par exemple, vérifie qu'elle est bien visible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    [DllImport("user32.dll")]
    static extern bool IsWindowVisible(IntPtr hWnd);
     
    ...
     
     
    if (IsWindowVisible(process.MainWindowHandle))
    {
        ...
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Concepteur/Développement
    Inscrit en
    Juin 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur/Développement
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2004
    Messages : 60
    Par défaut
    Hélas, ça ne suffit pas.
    Par exemple, j'ai installé la RocketDock.
    Elle n'apparaît pas dans le Alt+Tab mais elle sort avec un MainWindowHandle != IntPtr.Zero et un IsWindowVisible à true

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    essaie de voir quelles différences il y a entre les fenêtres affichées par Alt-Tab et les autres... c'est sans doute au niveau des bits de style des fenêtres qu'il faut chercher

  5. #5
    Membre confirmé
    Homme Profil pro
    Concepteur/Développement
    Inscrit en
    Juin 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur/Développement
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2004
    Messages : 60
    Par défaut
    Bon, je ne sais pas si c'est la méthode sûr à 100% mais effectivement, si la FORM à un formborderstyle de type Toolsxxxx alors elle n'apparaît pas dans le Alt+Tab (http://msdn.microsoft.com/en-us/libr...41(VS.80).aspx).
    Donc en faisant le code suivant, j'ai bien uniquement les applications qui apparaîssent dans le Alt+Tab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    foreach (Process p in prc) {
        if (p.MainWindowHandle != IntPtr.Zero) {
            if (!p.MainWindowTitle.Equals("")) {
                if (IsWindowVisible(p.MainWindowHandle)) {
     
                    tagWINDOWINFO info = new tagWINDOWINFO();
                    info.cbSize = (uint)Marshal.SizeOf(info);
                    GetWindowInfo(p.MainWindowHandle, ref info);
                    // 128 <=> public const uint WS_EX_TOOLWINDOW    = 0x00000080;
                    if ((info.dwExStyle & 128) == 0) {
                        // Je peux prendre ce process.
                    }
                }
            }
        }
    }
    Merci.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    bien vu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupérer valeur liste de choix comme paramêtre dans un requete
    Par ecoutertudevra dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 03/03/2012, 10h09
  2. Réponses: 7
    Dernier message: 19/10/2010, 19h41
  3. Notre appli dans le ALT+TAB
    Par Gregory.M dans le forum Windows Forms
    Réponses: 11
    Dernier message: 13/10/2008, 13h46
  4. Listes Sharepoint dépendantes (comme dans un SGBD)
    Par nassim12 dans le forum SharePoint
    Réponses: 4
    Dernier message: 01/07/2008, 13h58
  5. [C# 2.0] Masquer une application dans le ALT+TAB
    Par StormimOn dans le forum Windows Forms
    Réponses: 7
    Dernier message: 07/09/2007, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo