2017-03-17 4 views
3

Sous Windows 10, vous pouvez choisir entre des icônes petites ou grandes pour la barre des tâches. Le réglage est disponible via l'interface utilisateur en cliquant droit sur la barre des tâches et aller aux paramètres:Comment modifier la taille de l'icône de la barre des tâches Windows 10 par programmation

Use small taskbar buttons settings

Il est également possible de régler ce paramètre via l'éditeur de registre (regedit.exe) en modifiant la clé suivante :

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Avancé \ TaskbarSmallIcons

La valeur est 0 pour les grandes icônes et 1 pour les petites icônes. Mais par opposition à la configuration de l'interface utilisateur, avec cette méthode, vous devez vous déconnecter et vous connecter à votre utilisateur Windows pour que la barre des tâches soit mise à jour (redémarrer le processus explorer.exe fonctionne également mais ce n'est pas une option).

Je voudrais être en mesure de mettre à jour la barre des tâches et de choisir entre petites ou grandes icônes par programmation. Y a-t-il une API pour cela, ou un moyen de mettre à jour la barre des tâches pour qu'elle soit lue dans le registre sans avoir à se déconnecter? Mon objectif spécifique est d'afficher automatiquement de petites icônes lorsque j'utilise un petit écran (celui sur l'ordinateur portable) et de grandes icônes lorsque j'utilise un grand écran (mon grand écran de travail normal).

Edit: Maintenant Adaptive Taskbar for Windows est une réalité grâce aux solutions proposées: D

+0

Vous pouvez essayer de trouver la fenêtre de la barre des tâches en utilisant EnumWindows et envoyez-lui un message, comme wm_displaychange ou simplement masquer/montrer. – VuVirt

Répondre

3

Avant que Windows 10 vous pourriez send the WM_SETTINGCHANGE message à la barre des tâches, mais il semble que ce no longer works. Vous devrez peut-être déboguer Explorer.exe pour comprendre comment il est maintenant notifié.

Edit:

Je viens de tester ce avec un simple C++ application et si vous définissez une chaîne lParam spéciale, il fonctionne également sur Windows 10:

SendMessageTimeoutW(HWND_BROADCAST, WM_SETTINGCHANGE, NULL, (LPARAM)L"TraySettings", SMTO_NOTIMEOUTIFNOTHUNG, 3000, NULL); 
+0

Merci @Anders, maintenant [Adaptive Taskbar pour Windows] (https://github.com/cprcrack/AdaptiveTaskbar) est une réalité grâce à cette ligne: D – cprcrack

+0

'WM_SETTINGCHANGE' a un support limité dans Windows 10, en particulier dans la dernière version qui sort ce mois-ci. Cela fonctionne pour ce scénario tho! –