热情软件屋

 

如何让对注册表修改的结果立即生效


编号:QA002333
建立日期: 1999年12月27日 最后修改日期:2003年10月18日
所属类别:

shenmingzhe:
    请问95中的‘应用’是如何实现的,比如我控制面板的某项设置并单击‘应用’后,修改的结果立即生效;我在编程过程中修改了注册表,可只有从新启动后才生效,请问怎样在程序中实现?

回答:

    一般来说,你需要在修改注册表后广播发送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

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio