如何让对注册表修改的结果立即生效
编号:QA002333
建立日期: 1999年12月27日 最后修改日期:2003年10月18日
所属类别:
Q
shenmingzhe:
请问95中的‘应用’是如何实现的,比如我控制面板的某项设置并单击‘应用’后,修改的结果立即生效;我在编程过程中修改了注册表,可只有从新启动后才生效,请问怎样在程序中实现?
A回答:
一般来说,你需要在修改注册表后广播发送WM_SETTINGCHANGE消息(在Windows NT下为WM_WININICHANGE消息)。如果使用SystemParametersInfo修改系统设置,最后一个参数应设置为SPIF_SENDWININICHANGE。这样,有关程序接收到该消息采取相应的操作,不过不是所有的操作都可以立即生效,有些操作需要重新启动Windows或重新启动软件。你可以参考:QA000755 "如何让屏幕保护立即运行"、QA001275 "如何测试和改变系统日期格式"、QA001891 "如何动态设置小数点的符号"。
honey: 在delphi中:
sendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, Windows API, win32, api, windows api, gdi32, kernel。
| |
|
|
| |
|
|