Notifying applications that the registry has changed

Question:

When I make a change to the registry, some applications do not seem to acknowledge the changes until they are restarted. How can I get the applications to respond to the changes?

Answer:

Broadcast a WM_WININICHANGE message to the system, sending a null terminated string detailing the registry section that changed. Most well written applications should respond to the WM_WININICHANGE message.

Example:

procedure TForm1.Button1Click(Sender: TObject);

begin

  SendMessage(HWND_BROADCAST,

  WM_WININICHANGE,

  0,

  LongInt(PChar('RegistrySection')));

end;