Minimiser une fenetre c# [Résolu]

Messages postés
3
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
19 mars 2008
- - Dernière réponse : Lutinore
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
- 20 mars 2008 à 06:54
Bonjour,
je voudrait minimiser une fenetre dans la zone de notification en C#. Je travaille en mode console et je ne peut pas changer, donc je ne peut pas utiliser le NotifyIcon.
Pour l'instant j'ai reussi a minimiser la fenetre dans la barre des taches avec ShowWindow(hwind,SW_MINIMISE), mais cela ne m'interresse pas.

Pouvez vous m'aider SVP.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
37
3
Merci
Tu peux tenter de jouer avec les styles de la fenêtre WS_* ou via le Shell avec l'interface ITaskbarList.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Lutinore
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
37
0
Merci
Salut, même en mode console et sans Form tu peux utiliser un NotifyIcon, suffit de rajouter les bonnes références dans ton projet ( System.Windows.Forms.dll ).

internal static class MainNotifyIcon
{
    private static NotifyIcon notifyIcon = null;


    [ STAThread ]
    private static void Main( )
    {
        Initialize( );
        SystemEvents.SessionEnded += SystemEvents_SessionEnded;
        Application.Run( /* without main form */ );
        SystemEvents.SessionEnded -= SystemEvents_SessionEnded;
        //Exit( );
    }


    private static void Initialize( )
    {
        MenuItem exitItem = new MenuItem( "Exit", delegate { Exit( ); } );
        ContextMenu contextMenu = new ContextMenu( new MenuItem[ ] { exitItem } );
        notifyIcon = new NotifyIcon( );
        notifyIcon.ContextMenu = contextMenu;
        notifyIcon.Icon = Icon.ExtractAssociatedIcon( Application.ExecutablePath );
        notifyIcon.Visible = true;
    }


    private static void Exit( )
    {
        if ( notifyIcon != null )
        {
            notifyIcon.Visible = false;
            notifyIcon.Dispose( );
            notifyIcon = null;
        }


        Application.Exit( );
    }


    private static void SystemEvents_SessionEnded( object sender, SessionEndedEventArgs args )
    {
        Exit( );
    }
}
Commenter la réponse de Lutinore
Messages postés
3
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
19 mars 2008
0
Merci
Merci d'avoir répondu si vite, en fait le problème ne se situe pas vraiment ici. J'avais mal posé le problème, ce que je voudrait c'est faire disparaitre l'application de la zone TaskBar car c'est un serveur et c'est génant d'avoir une fenêtre toujours ouverte.

Le but final est de faire une fonction qui permet de mettre l'application dans la zone de notification (en tache de fond) et éventuellement de cliquer dessus pour revoir la console
Commenter la réponse de ninja1965
Messages postés
3
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
19 mars 2008
0
Merci
Merci de ton aide j'ai pu trouver. En fait il fallait le code : ShowWindow(GetForegroundWindow(), 11); le 11 permet de faire disparaitre la fenetre de la barres des taches
++
Commenter la réponse de ninja1965
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
37
0
Merci
la valeur 11 ça correspond à SW_FORCEMINIMIZE, je ne vois pas pourquoi ça fait disparaitre la fenêtre de la barre des taches, doit y avoir un "effet de bord" quelque part.. mais bon si ça te convient : )
Commenter la réponse de Lutinore

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.