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 41
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 41
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 41
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
Rejoignez-nous