Minimiser une fenetre c#

Résolu
ninja1965
Messages postés
3
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
19 mars 2008
- 16 mars 2008 à 16:46
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
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.

5 réponses

Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
19 mars 2008 à 07:54
Tu peux tenter de jouer avec les styles de la fenêtre WS_* ou via le Shell avec l'interface ITaskbarList.
3
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
16 mars 2008 à 18:38
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( );
    }
}
0
ninja1965
Messages postés
3
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
19 mars 2008

18 mars 2008 à 20:17
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
0
ninja1965
Messages postés
3
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
19 mars 2008

19 mars 2008 à 14:07
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
++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
20 mars 2008 à 06:54
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 : )
0