locked
Trying to change Visual Effects via the registry RRS feed

  • Question

  • Hello:

    I'm trying to change the Visual Effects via the registry because it is a user setting.  However, when I do it, it changes the GUI, but it has no effects on the system.  I have read that there is more happening behind the scenes than just a registry hack to change these setting.  Therefore, my question is:  is there a way to accomplish these changes without doing it via the GUI?  If not, any ideas how I can accomplish this on a computer to affect all users? 

    Basically I have an application that does not like the default settings, so I need to tweak a couple of the settings in there.  I'm trying to do this to all users because it is a shared computer.  I don't want each user to have to goto the GUI to accomplish this. 

    Thanks for your help.

    Rod

    Tuesday, March 29, 2011 8:34 PM

Answers

  • You can use the application RegFromApp [1] to port the changes into a .reg file. Select the "C:\Windows\System32\SystemPropertiesAdvanced.exe" make the changes and RegFromApp should monitor the changes. Now save the changes into a reg file.

    André

    [1] http://www.nirsoft.net/utils/reg_file_from_application.html


    "A programmer is just a tool which converts caffeine into code"

    I'm going to leave the forum on 31th March 2011 if I don't get a Feedback about the SPAM of 2 MVPs. So if you want an answer, be fast so that I can help you before I leave the Technet forum.
    • Marked as answer by RodMN Thursday, March 31, 2011 1:34 PM
    Wednesday, March 30, 2011 8:20 PM

All replies

  • Hi, Rod:

    You are right, editing the registry alone doesn't apply the changes immediately. That's because you have to "inform" Windows that something has changed so that it reads the registry values again, updates the UI, and possibly caches some data in memory.

    One alternative might be manually restart the Explorer.exe process or log off/log on after making the changes in the registry. Did you try that?

    Another alternative, a bit better in my opinion, involves some programming. After modifying the registry, the following line of C++ code should refresh the UI with the new settings:

    Edit: Modifying the registry is unsupported. I realised that the supported SystemParametersInfo API is able to change most visual effects. This is the recommended way, see my next post.


    Microsoft MVP Windows Expert Consumer | http://www.wintecnico.com

    • Edited by Daniel MartínEditor Wednesday, March 30, 2011 7:53 PM Point that editing the registry is unsupported
    Tuesday, March 29, 2011 10:01 PM
    Answerer
  • I think that you are right.  What is strange is that I actually rebooted after making the registry changes, and the changes did not take affect.  If I make changes via the GUI and hit OK, Windows will say "please wait" and you see the video changing.  If I do it via the registry, the on/off switches change, but not the video.  Even after a reboot, it is like Windows does not know anything has changed (even though the on/off switches have changed).  Therefore, I need a process of informing Windows of the change after I make the registry changes.

    Can I run this code (SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, NULL, (LPARAM)TEXT("VisualEffects")); via a batch file as it is stated here?  I could try it.

    I'm not familiar with C++

    Thanks.

    Rod

    Wednesday, March 30, 2011 1:09 PM
  • I've came up with a better solution, without the need to edit the registry.

    Simply use the API SystemParametersInfo, with the first parameter set to the visual effect that you want to change (read the MSDN article to see all available visual effects). At the end of the page there is a small example in C++.

    I don't think you can use the function in a batch file, you need a complete programming environment that can target the Windows API, like C/C++/.NET, etc.


    Microsoft MVP Windows Expert Consumer | http://www.wintecnico.com

    Wednesday, March 30, 2011 2:11 PM
    Answerer
  • Ok makes sense.  I guess my question is how do I get this code to run for each user so I can alter the visual effects?  Do I need to install something on that Windows 7 computer to run this code?  Excuse my ignorance on this.  I'm not a programmer so I don't how to run code like this.  I'm familiar with running batch files, group policy or some basic VB scripts. 

    Thanks for any feedback, and I appreciate your comments.

    Rod

    Wednesday, March 30, 2011 3:16 PM
  • No need to install, it's like a batch file or VB script but with .exe extension (and a bit bigger). In the MSDN forums you would get assistance about how to create a simple project that uses the SystemParametersInfo API.

    Microsoft MVP Windows Expert Consumer | http://www.wintecnico.com

    Wednesday, March 30, 2011 7:48 PM
    Answerer
  • You can use the application RegFromApp [1] to port the changes into a .reg file. Select the "C:\Windows\System32\SystemPropertiesAdvanced.exe" make the changes and RegFromApp should monitor the changes. Now save the changes into a reg file.

    André

    [1] http://www.nirsoft.net/utils/reg_file_from_application.html


    "A programmer is just a tool which converts caffeine into code"

    I'm going to leave the forum on 31th March 2011 if I don't get a Feedback about the SPAM of 2 MVPs. So if you want an answer, be fast so that I can help you before I leave the Technet forum.
    • Marked as answer by RodMN Thursday, March 31, 2011 1:34 PM
    Wednesday, March 30, 2011 8:20 PM
  • you can change the visual effects by following the instructions given on this page.http://www.sevenforums.com/tutorials/1908-visual-effects-settings-change.html?filter


    • Proposed as answer by Mayank2013 Friday, August 16, 2013 12:36 PM
    Friday, August 16, 2013 12:36 PM