我修改了注册表,怎样立即生效???

zhuangbx220 2002-09-28 02:15:37
我修改了注册表后,怎么样使它立即生效???用什么API???

Declare Function BroadcastSystemMessage Lib "user32" Alias "BroadcastSystemMessage" (ByVal dw As Long, pdw As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

这API,将一条系统消息广播给系统中所有的顶级窗口。

怎么广播????
...全文
196 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuangbx220 2002-09-30
  • 打赏
  • 举报
回复
楼上的程序我试过了,不行啊, 把所有窗口都显示出来了(隐藏窗口,小窗口等)一塌糊涂。

有用过[超级兔子魔法]的吗?它就能做到,在注册表中修改了开始菜单的图标后就能立即生效。
chanet 2002-09-30
  • 打赏
  • 举报
回复
Const BSF_POSTMESSAGE = &H10
Const BSM_APPLICATIONS = &H8
Const SC_MINIMIZE = &HF020
Const WM_SYSCOMMAND = &H112
Private Declare Function BroadcastSystemMessage Lib "user32" (ByVal dw As Long, pdw As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub Command1_Click()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'Broadcast a system message
BroadcastSystemMessage BSF_POSTMESSAGE, BSM_APPLICATIONS, WM_SYSCOMMAND, SC_MINIMIZE, ByVal 0&
End Sub
Sean918 2002-09-30
  • 打赏
  • 举报
回复
【函数】
BroadcastSystemMessage

【操作系统】
Win9X:Yes
WinNT:No

【声明】
BroadcastSystemMessage Lib "user32" Alias "BroadcastSystemMessage" (ByVal dw As Long, pdw As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

【说明】

将一条系统消息广播给系统中所有的顶级窗口

【返回值】

Long,大于零表示成功;-1表示出错。如设置了BSF_QUERY,而且至少有一个消息接收者返回零,那么这个函数返回零

【其它】


【参数表】
dw ------------- Long,下述常数的一个或多个
BSF_FLUSHDISK
每次处理完一条消息后,都对磁盘进行刷新(将未存盘的数据存下来
BSF_FORCEIFHUNG
如目标处于挂起状态,则在设定的超时后到期返回
BSF_IGNORECURRENTTASK
发送任务不接收消息
BSF_LPARAMBUFFER

pdw ------------ Long,下述常数的一个或多个
BSF_ALLCOMPONENTS
消息进入能够接收消息的每一个系统组件
BSF_APPLICATIONS
消息到达应用程序
BSF_INSTALLABLEDRIVERS
消息到达可安装的驱动程序
BSF_NETDRIVERS
消息到达网络驱动程序
BSF_VXDS
消息到达系统设备驱动程序

un ------------- Long,消息编号

wParam --------- Long,由消息决定
lParam
Long,由消息决定。如指定了BSF_LPARAMBUFFER,这就是位于调用进程地址空间的一个内存缓冲区的地址,而且缓冲区的第一个16位字包含了缓冲区的长度

lParam指向一个内存缓冲区 - BSF_NOHANG
跳过被挂起的所有进程
BSF_POSTMESSAGE
投递消息。不与BSF_LPARAMBUFFER和BSF_QUERY兼容
BSF_QUERY
将消息顺序发给进程,只有前一个返回TRUE时,才进入下一个进程

实例如下:

Const BSF_POSTMESSAGE = &H10
Const BSM_APPLICATIONS = &H8
Const SC_MINIMIZE = &HF020
Const WM_SYSCOMMAND = &H112
Private Declare Function BroadcastSystemMessage Lib "user32" (ByVal dw As Long, pdw As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub Command1_Click()
'Broadcast a system message
BroadcastSystemMessage BSF_POSTMESSAGE, BSM_APPLICATIONS, WM_SYSCOMMAND, SC_MINIMIZE, ByVal 0&
End Sub
Sean918 2002-09-30
  • 打赏
  • 举报
回复
有些是能立即生效的,有些一定要至少注销一次。
water_j 2002-09-30
  • 打赏
  • 举报
回复
应该立即就生效的
bitcat 2002-09-30
  • 打赏
  • 举报
回复
不重起能生效吗,我不知道,好象WIN2000可以
trytryba 2002-09-30
  • 打赏
  • 举报
回复
学习。
bestofbest 2002-09-30
  • 打赏
  • 举报
回复
学习
zhuangbx220 2002-09-29
  • 打赏
  • 举报
回复
up

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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