.net - Kan du ændre indstillinger for Visual Effects Performance fra et program?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg ændrer registreringsværdien fundet på:


HKEY\_CURRENT\_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ VisualEffects.


For mit formål kan det gemme en DWORD-værdi på 0, 1, 2. Disse værdier svarer til de visuelle effekter-knapper under Performance Options i Windows 7; 'Lad Windows vælge, hvad der er bedst til min computer', 'Juster for bedste udseende' og 'Juster for bedste ydeevne' henholdsvis.


Hvis du bruger den faktiske 'Performance Options' skærm og foretage en ændring og klik på Apply, vil de visuelle indstillinger i Windows genindlæses som forventet. Hvis du programmatisk ændrer værdien, gør det ikke noget.


Er der en måde at opnå dette i kode?

Bedste reference


At udvide Raymonds kommentar:


Fanebladet Visual Effects har femten individuelle præstationsindstillinger. Knappen 'Juster for bedste udseende' tænder dem alle. 'Juster for den bedste ydeevne' slår dem alle til. 'Lad Windows vælge, hvad der er bedst til min computer' formentlig sætter dem baseret på Windows Experience-indekset eller en lignende metode.


Du er ikke i stand til at implementere 'Lad Windows vælge, hvad der er bedst til min computer' fra et program, eller i det mindste ikke let. Men du bør kunne implementere de to andre muligheder ved at bruge SystemParametersInfo og indstille hver af de femten individuelle muligheder. [1]


Du skal identificere de femten indstillinger, der svarer til indstillingerne i fanen Visual Effects: nogle vil være rimeligt indlysende, andre kan være et spørgsmål om forsøg og fejl. Forhåbentlig, hvis du indstiller radioknappen til 'Custom', når du åbner fanen Visual Effects vil du se de ændringer, din ansøgning har gjort, så du kan fortælle om du har den rigtige indstilling eller ej.


Du vil måske også indstille registreringsværdien for radioknappen, så brugeren ser den rigtige ting, hvis de åbner kontrolpanelet.


Addendum: for scenariet, du beskriver, vil du sandsynligvis først læse de aktuelle indstillinger og genoprette dem efterfølgende. Læs eller gendan også registreringsindstillingerne eller skal du ikke røre ved det.

Andre referencer 1


Efter min viden fungerer registreringsdatabasen som enhver anden opbevaring.


Når applikationerne har brug for en værdi fra registreringsdatabasen, kontrollerer de den. De fleste applikationer læser kun registreringsdatabasen, når de først starter. Du skal normalt genstarte den relevante applikation, hvis du manuelt ændrer en af ​​dens registreringsposter. Selvom en genstart ikke er påkrævet, skal du stadig finde ud af, hvordan du udløser den specifikke applikation for at genoptage den specifikke post.


Så for at besvare dit spørgsmål, er der ingen magisk 'opdater' kommando, der vil skubbe den aktuelle værdi af en registreringspost til den relevante applikation (er).


Nu er det reelle spørgsmål, du vil spørge, 'Er der en måde at tvinge Windows til at genindlæse præstationsindstillingerne?'. Jeg ved af ingen måde at gøre dette.


Hvis der er et WinApi-opkald tilgængeligt, vil det sandsynligvis få dig til at levere den nye værdi, og det vil tage sig af opdatering af registreringsdatabasen.