c # - Sådan ændres Windows 10 proceslinjeikonstørrelse programmatisk

Indlæg af Hanne Mølgaard Plasc

Problem



I Windows 10 kan du vælge mellem små eller store ikoner til proceslinjen. Indstillingen er tilgængelig via brugergrænsefladen ved at højreklikke på proceslinjen og gå til indstillingerne:


Brug små indstillings knapper indstillinger [3]


Det er også muligt at justere denne indstilling via registry editor (regedit.exe) ved at ændre følgende nøgle:


HKEY\_CURRENT\_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Advanced \ TaskbarSmallIcons


Værdien er 0 for store ikoner og 1 for små ikoner. Men i modsætning til brugergrænsefladen indstilling, skal du logge ud og logge ind på din Windows-bruger, så proceslinjen kan opdateres (genstart explorer.exe-processen fungerer også, men det er ikke en mulighed).


Jeg vil gerne kunne opdatere proceslinjen og vælge mellem små eller store ikoner programmatisk. Er der nogen API til dette eller på nogen måde at opdatere proceslinjen, så den læser fra registreringsdatabasen uden at skulle logge af? Mit specifikke mål er at automatisk vise små ikoner, når jeg bruger en lille skærm (den ene på den bærbare computer) og store ikoner, når jeg bruger en stor skærm (min almindelige store arbejdsskærm).


Rediger: Nu er Adaptive Aktivitetslinje til Windows en realitet takket være de leverede løsninger: D [4]

Bedste reference


Før Windows 10 kan du sende meddelelsen WM\_SETTINGCHANGE til proceslinjen, men det ser ud til, at det ikke længere fungerer. Du skal måske debugere Explorer.exe for at finde ud af, hvordan den bliver anmeldt nu. [5] [6]


Redigere:


Jeg har lige testet dette med en simpel C ++ app, og hvis du indstiller en særlig LPARAM-streng, virker den også på Windows 10:


SendMessageTimeoutW(HWND\_BROADCAST, WM\_SETTINGCHANGE, NULL, (LPARAM)L"TraySettings", SMTO\_NOTIMEOUTIFNOTHUNG, 3000, NULL);