刷新系统

I

import

Unregistered / Unconfirmed
GUEST, unregistred user!
SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_IDLIST+SHCNF_FLUSH,nil,nil);//刷新文件关联图标 其中SHChangeNotify还有多个地方可以刷新,具体的看帮助!
SHChangeNotify(SHCNE_ALLEVENTS , SHCNF_FLUSH,nil,nil);//发生所有的事件,系统应该刷新响应的项目
function SHUpdateRecycleBinIcon():boolean;stdcall;external 'shell32.dll' name 'SHUpdateRecycleBinIcon';//刷新回收站图标
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);//通知系统设置改变
var
buf:pchar;
...
getmem(buf,SizeOfBuf);//
strpcopy(buf,'注册表的主键,例如Software');
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,buf);
//通知系统刷新响应的键值,如果前面的没有起作用,那么可以采用这个方法。
systemparametersinfo(SPI_SETDESKWALLPAPER,0,pchar(path),0);
//上面的是通知系统更改了墙纸,其中path为墙纸的路径。
同样,SystemParametersInfo()还可以对系统进行很多方面的刷新,例如更改了桌面的大小等等,你可以看看帮助,我不可能在这儿把所有的都写出来。
如果修改注册表,有的时候,需要发送全部的路径,但是,有的时候,不需要发送全部的路径!只要叶子结点的名称即可,例如修改系统环境变量,就只要叶子结点名字:
 

Similar threads

I
回复
0
查看
469
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
671
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
392
import
I
顶部