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

C# Discussion :

Cacher la barre des tâches de Windows 7


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2005
    Messages : 26
    Points : 13
    Points
    13
    Par défaut Cacher la barre des tâches de Windows 7
    Bonjour,

    Je viens demander votre aide car je ne m'en sors pas avec cette fonctionnalité !
    Mon but est de parvenir à cacher complètement la barre des tâches à l'utilisateur sans qu'il puisse y accéder.

    Après plusieurs recherches sur le net, je suis tombé sur la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [DllImport("user32.dll")]
    public static extern int SetWindowPos(int hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags);
    [DllImport("user32.dll")]
    private static extern IntPtr FindWindowEx(IntPtr parentHwnd, IntPtr childAfterHwnd, IntPtr className, string windowText);
    [DllImport("user32.dll", EntryPoint = "FindWindowA")]
    public static extern int FindWindows(String lpClassName, String lpWindowsName);
     
    ShowWindow(FindWindowEx(IntPtr.Zero, IntPtr.Zero, (IntPtr)0xC017, null), Constants.SW_HIDE);
    SetWindowPos(FindWindows("Shell_traywnd", null), 0, 0, 0, 0, 0, Constants.TASKBAR_HIDE);
    Ce code fonctionne mais seulement en partie. En effet, la barre des tâches est bien cachée et n'est plus accessible à l'utilisateur mais il y a 3 problèmes :
    1 - lorsque l'on double clic sur le bureau, le menu démarrer s'affiche (je ne comprends pas vraiment pourquoi cependant...). Pour pallier à ce problème temporairement, j'ai désactiver le double clic de souris grâce au code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [DllImport("user32")]
    public static extern int SetDoubleClickTime(int wCount);
    SetDoubleClickTime(1);
    Mais c'est plus de la bidouille qu'une vraie solution...

    2 - lorsque l'on utilise le raccourci CTRL+Echap, le menu démarrer apparaît et là je n'ai trouvé aucunes solutions pour y remédier, même de type bidouille... Mais ce raccourci n'est pas très connu donc ce n'est normalement pas trop grave.

    3 - la barre des tâches n'est plus affichée mais à la place il y a un espace réservé et les applications qui sont lancées ne prennent pas tout l'écran (l'espace occupée par la barre des tâches n'est pas utilisé). Cela me pose plus de problèmes car j'ai besoin que les applications lancées occupent tout l'écran (cela peut être n'importe quelle application comme Notepad par exemple...)
    Pour essayer de pallier à ce problème, je me suis dit qu'il suffisait que je passe la barre des tâches en "auto-hide" avant d'appliquer la méthode qui la cache. Pour cela j'ai trouvé lé code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    RegistryKey key = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2");
    byte[] keyValue = (byte[])key.GetValue("Settings");
    keyValue[8] = (byte)1;
     
    key.SetValue("Settings", keyValue, Microsoft.Win32.RegistryValueKind.Binary);
    Process[] myProcesses = Process.GetProcessesByName("explorer");
    foreach (Process myProcess in myProcesses) {
    	myProcess.Kill();
    }
     
    System.Threading.Thread.Sleep(2000);
    J'arrive bien à passer la barre des tâches en "auto-hide" mais du coup il n'est plus possible de la supprimer !

    Voilà, c'est un peu compliqué au final et je ne sais plus trop comment faire pour arriver à ce que je veux.

    Si vous pouvez m'aider, ça serait super !

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    t'as aussi l'option de ne pas lancer l'explorer au démarrage de windows.

    Comme ça, tu n'auras pas du tout de barre et de problématique à gérer
    par rapport aux différentes actions pour ne pas la faire apparaitre !!!

    Tu dois avoir la clé de registre ShellExplorer de mémoire pour supprimer le lancement d'explorer.exe au démarrage de windows.
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2005
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    En fait j'avais déjà exploré cette solution au tout début mais j'avais laissé tombé car ça n'aboutissait pas à ce que je voulais.

    Mais là, en réessayant, finalement ça pourrait tout à fait convenir !
    Je n'ai plus besoin de cacher la barre des tâches via les API Windows, je fais simplement :
    1 - passer la barre en "auto-hide"
    2 - désactver le "AutoRestartShell" dans la base de registre (sinon explorer.exe se relance automatiquement)
    3 - killer le process explorer.exe

    Et voilà, en faisant cela ça à l'air de fonctionner comme je le souhaite (juste la méthode pour passer la barre des tâches en auto-hide et que ça soit effectif directement n'est pas terrible car elle nécessite de killer explorer.exe une première fois avant qu'il se relance automatiquement pour rafraichir la barre des taches mais bon ça fonctionne...)

    Même si ta solution n'est pas celle que j'ai utilisée, elle m'a quand même permis de trouver donc merci

Discussions similaires

  1. Réponses: 10
    Dernier message: 18/12/2007, 09h00
  2. Propriétés de la barre des tâches de Windows
    Par ships'o crevettes dans le forum C#
    Réponses: 3
    Dernier message: 18/09/2007, 11h25
  3. Largeur barre des tâches de windows xp
    Par hellspawn_ludo dans le forum Windows Forms
    Réponses: 11
    Dernier message: 09/08/2007, 01h03
  4. Réponses: 6
    Dernier message: 15/05/2006, 11h50
  5. HAUTEUR de la barre des tâches de Windows ?
    Par Lung dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 13/12/2002, 11h43

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