修改注册表后,怎样使用设置立即生效

light_he 2009-09-23 01:16:36

因需启用打印机的日志记录,我已找到需要修改注册表所需的注册表键值
但是修改注册表键值后必需要重新启动电脑后设置才会生效
后查找资料,可以使用WM_SETTINGCHANGE可以使用设置马上生效,于是修改代碼如下,结果还是不能立即生效,麻烦帮忙看看是什么原因?
谢谢.



reg:=tregistry.Create;
reg.rootkey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SYSTEM\ControlSet001\Control\Print\Providers',true);
reg.WriteInteger('EventLog',7);
reg.CloseKey;
reg.Free;
SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,SPI_SETNONCLIENTMETRICS,0, SMTO_ABORTIFHUNG,10000,success);
...全文
520 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
iqyely 2009-10-11
  • 打赏
  • 举报
回复
关注下。。
liugaohui 2009-10-11
  • 打赏
  • 举报
回复
谢谢,学习了
hjkto 2009-10-11
  • 打赏
  • 举报
回复
楼主你的问题解决了吗?如果解决了,把答案贴一下

我也想知道,如何修改后即时生效,如果修改注册多行,是不是只要让多行的哪个主键生效就行呀?
dinoalex 2009-10-11
  • 打赏
  • 举报
回复
试试 SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0,lparam(pchar('Registry')));
hjkto 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 gyk120 的回复:]
uses ShlObj
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NiL, NiL);
[/Quote]

能否给个例子?
qinmaofan 2009-10-08
  • 打赏
  • 举报
回复
试一试 停止 spool 服务,然后再启动
hjkto 2009-10-03
  • 打赏
  • 举报
回复
记号
diecode 2009-09-27
  • 打赏
  • 举报
回复
RegFlushKey(hKey);
light_he 2009-09-24
  • 打赏
  • 举报
回复
记录,明天再试:http://topic.csdn.net/t/20010303/12/78312.html
flymoon99 2009-09-24
  • 打赏
  • 举报
回复
RegFlushKey(hKey); 搜下这个API
gyk120 2009-09-24
  • 打赏
  • 举报
回复
uses ShlObj
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NiL, NiL);
gyk120 2009-09-24
  • 打赏
  • 举报
回复
用SHchangenotify
iqyely 2009-09-24
  • 打赏
  • 举报
回复
来关注下。。
Frank.WU 2009-09-24
  • 打赏
  • 举报
回复
刷新一下系统,注意,不是刷新桌面,
....
我知道用代码,不是手动,我说的就是用代码刷新系统,你别误会了。
light_he 2009-09-23
  • 打赏
  • 举报
回复
手动设置此选项是不需要重新启动的,因此我理解用程式修改,应该也不需要重新启动吧
再帮忙想想办法吧,谢谢。
nbzip 2009-09-23
  • 打赏
  • 举报
回复
不太了解,顶一个.

我的理解,可能是驱动级的,需要系统启动时,才能装载.(如果要自己搞的即时开通,应该把相关的程序都按系统启动一样,重新关掉,开启吧....呵呵)

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧