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 :
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 :
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);
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 :Mais c'est plus de la bidouille qu'une vraie solution...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [DllImport("user32")] public static extern int SetDoubleClickTime(int wCount); SetDoubleClickTime(1);
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 :
J'arrive bien à passer la barre des tâches en "auto-hide" mais du coup il n'est plus possible de la supprimer !
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);
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 !
Partager