• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 666
  • Last Modified:

Refresh windows from registry without rebooting

Well from the title above, I'm trying to create a program that cuase windows to automatically refresh all its settings from the registry as my program changes something in the registry but I want windows to detect/apply the changes without having to reboot. I've seen some program that could do this, I think it was one of the micrsoft power tools but I can't remember and then I see that some VB programs can do these as well but I need to know how to do it in VC++. I hoping that someone can give me an example coding that I can use or point me to some website that teaches this.
0
TDR
Asked:
TDR
  • 2
  • 2
  • 2
  • +2
1 Solution
 
Roshan DavisCommented:
The link http://codeproject.com/tips/resswitch.asp contains How to change the display settings

I'm looking for a generic one.


GOOD LUCK
0
 
robert_marquardtCommented:
Try to broadcast a WM_WININICHANGE.
0
 
jkrCommented:
This is usually done by broadcasting a 'WM_SETTINGCHANGE' - see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/sysinfo_4d5x.asp ('WM_SETTINGCHANGE') and http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch11e.asp ('Using System Settings and Notifications')
0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
jkrCommented:
>>Try to broadcast a WM_WININICHANGE.

"WM_WININICHANGE
The WM_WININICHANGE message is obsolete. It is included for compatibility with earlier versions of the system. New applications should use the WM_SETTINGCHANGE message."
0
 
robert_marquardtCommented:
Sorry, forgot about that. Best broadcast both messages. There are still programs around which only react to the old message.
0
 
MadshiCommented:
:-)

From Delphi's windows.pas file:

const WM_SETTINGCHANGE = WM_WININICHANGE;

Regards, Madshi.
0
 
MadshiCommented:
TDR, you can't generally force anyone to reload registry values. You should use SystemParametersInfo or other APIs to change system settings. In that case it most of the time works without reboot. Also you can try broadcasting WM_SETTINGCHANGE/WM_WININICHANGE, as also suggested. But that only helps for some registry values, by far not for all. Also you could programmatically post a F5 key to the window which should be refreshed. There are a few more such hacks, but after all you can't force every program to reload its registry values. It depends on how each program is written, whether it reacts on WM_SETTINGCHANGE and the like...

Regards, Madshi.
0
 
TDRAuthor Commented:
Though I haven't really tried out this solution yet but at least its an idea I can work on at least and search from there...Thanks
0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

  • 2
  • 2
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now