Comment puis-je désactiver le bouton Démarrer (mais pas la barre des tâches) sous Windows 7?

Sous Windows XP, il était possible de désactiver le bouton Démarrer avec le code suivant:

hTray = FindWindow (TEXT("Shell_TrayWnd"), NULL); if (hTray) { hStartButton = FindWindowEx(hTray, NULL, TEXT("Button"), NULL); if (hStartButton) ShowWindow(hStartButton, FALSE); } 

Pour une configuration d’ordinateur à access public, je dois pouvoir le faire sous Windows 7. Le bouton Démarrer doit être désactivé (pas seulement masqué) et le rest de la barre des tâches doit toujours être visible et utilisable. Masquer la barre des tâches avec le bouton Démarrer n’est pas une option. Courir en plein écran n’est pas une option. Utiliser “Start Killer” ne fonctionnera pas car il ne désactivera pas le bouton Démarrer mais le masquera (les utilisateurs peuvent toujours utiliser les touches de raccourci pour afficher le menu Démarrer).

J’ai déjà essayé la méthode qui utilise FindWindowEx avec 0xC017 comme troisième paramètre et essaie ensuite de désactiver cette fenêtre. Ça ne marche pas Cette méthode ne fonctionne que si la barre des tâches entière est désactivée en premier. Ce dont j’ai besoin est une méthode qui désactive uniquement le menu Démarrer, tout comme le code que je reproduis ci-dessus le fait sous XP.

Toute aide est grandement appréciée.

La version “correcte” de Windows 7 est la suivante:

 HWND hStartBtn = FindWindowEx(NULL, NULL, MAKEINTATOM(0xC017), TEXT("Start")); if (hStartBtn != NULL) { ShowWindow(hStartBtn, FALSE); } 

Cependant, cela ne désactive que le bouton , ce qui signifie que vous n’obtiendrez pas la lueur ou d’autres effets en plaçant le curseur de votre souris dessus. Vous pouvez toujours cliquer sur la zone de bouton dans la barre des tâches pour ouvrir le menu. Apparemment, le gestionnaire de clics est maintenant implémenté dans la fenêtre de la barre des tâches elle-même, et non dans le cadre du bouton Démarrer séparé. C’est pourquoi vous devez d’abord désactiver la barre des tâches complète , et par conséquent, la plupart des solutions que vous avez trouvées en ligne le font précisément.

Cependant, il semble que l’application “Démarrer Killer” dispose désormais de fonctions permettant de désactiver les touches de raccourci les plus courantes qui déclenchent le menu Démarrer, à savoir les touches Ctrl + Échap et les fenêtres clé. Vous trouverez ces options en lançant le logiciel, en cliquant avec le bouton droit de la souris sur son icône dans la barre des tâches et en sélectionnant “Options” dans le menu. Vous pouvez également modifier le registre pour désactiver la clé Windows, comme décrit dans cet article de la base de connaissances . Si vous souhaitez implémenter vous-même cette même fonctionnalité via du code, la seule solution serait un raccordement de clavier de bas niveau qui emprisonne les événements de pression de touche responsables et les supprime.

Les hacks non documentés comme celui-ci ont pour objective de rompre avec les nouvelles versions de Windows. J’imagine que Raymond Chen rigolait et disait quelque chose comme “Je te l’avais bien dit” . Pirater l’interface Windows est une course dupe. Ou, comme vous le dites plusieurs fois dans la question, “n’est pas une option”.

Le menu de démarrage doit-il être désactivé en particulier? Vous pourrez peut-être faire de même via les parameters de stratégie ou diverses autres permissions de fichier.

Utilisez l’une des stratégies de groupe disponibles répertoriées ici .

Vous n’avez pas indiqué pourquoi vous souhaitez désactiver le bouton de démarrage. Si vous pensez à ce que vous ne voulez pas que vos utilisateurs fassent exactement au lieu de nous indiquer la solution que vous avez choisie (par exemple, “désactiver le bouton de démarrage”), vous pouvez proposer une bien meilleure solution.

Par exemple, si vous souhaitez empêcher les utilisateurs de modifier certains parameters, bloquez -le , pas le bouton de démarrage! Ou si vous ne voulez pas qu’ils voient toutes les applications installées, masquez-les à la place du bouton de démarrage! Ou…

(J’espère que vous voyez mon point ici).