管理首页
楼主MonkeyLin(小猴子)2001-04-30 19:51:00 在 VB / 基础类 提问 听说方法是:      先取得Expleror(Windows主程序)的ID进程      kill   it      最后重建进程      但我不懂方法,所以求救,谢谢      谢谢    1 楼sundayboys(sunboy)回复于 2001-04-30 20:51:00 得分 40回复人:Kingron(WinAPI)         (2001-3-3   13:25:00)     得20分        呵呵,20'太少了,你知道我是弄了多久才搞明白吗?写出来让大家共享:      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\Microsoft\windows\currentversion\Explorer\ToolBar');      SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,buf);      //通知系统刷新响应的键值,如果前面的没有起作用,那么可以采用这个方法。      systemparametersinfo(SPI_SETDESKWALLPAPER,0,pchar(path),0);      //上面的是通知系统更改了墙纸,其中path为墙纸的路径。      同样,SystemParametersInfo()还可以对系统进行很多方面的刷新,例如更改了桌面的大小等等,你可以看看帮助,我不可能在这儿把所有的都写出来。           就说这么多吧,希望你能举一反三 Top
2 楼JYQing(极于情)回复于 2001-04-30 21:07:00 得分 10上次我不是说了这个了吗?      SendMessage(HWND_BROADCAST,   WM_SETTINGCHANGE,   0,   0) Top
3 楼MonkeyLin(小猴子)回复于 2001-05-23 15:58:00 得分 0 我来给分拉 Top
WINDOWS的注册表是一个庞大的数据库,里面存储着计算机所有的软件硬件配置信息,WIDNOWS的启动和正常的使用都必需从中正确读取系统的配置信息。有些时候人们根据使用的需要需修改注册表的某一部份,但绝大多数的情况下,在注册表编辑器中修改编辑其键值后,我们若想使其设置生效,就必需重新启动电脑。然而重新启动系统往往要花1~2分钟甚至更多的时间,如果你需要修改多个键值并且要马上看到每次修改的结果的话,就不得不频繁地启动计算机,但这样做不仅浪费了大量的等待时间,而且还会影响计算机的使用寿命。  有没有一种不必重新启动计算机就可以使修改后的注册表快速更新呢?答案是自然肯定的。  首先在退出注册表编辑器后,点击桌面上的“开始”按钮,在菜单中选择“关闭系统”后弹出关闭WINDOWS的窗口。此时不要按其中的任何按钮,而是按下键盘上的ctrl+alt +del组合键(注意:只能按一次,否则会重新启动WINDOWS)系统将出现关闭对话框 ,从程序列表中选择“explorer(资源管理器),并点取“结束任务”按钮。约几秒钟后,屏幕显示一对话框,提示你该程序尚没作出反应,此时可不必理会其提示信息,直接点取结束任务。此时你会发现屏幕快速地闪烁一下,然后立即返回WINDOWS桌面,这时候你就能够马上看到注册表修改后的结果了!