大虾们,如何在windows启动时,控制windows外壳的加载?
解决方案 »
- 请叫一个UPDATE的方法.
- 如何在delphi7中实现带有单元格CheckBox(附图)
- 请问如何实现在界面上鼠标拖动一张图片上下左右移动的功能?
- 关于delphi一段代码,高手指点 if (p[5]='*') and (p[8]='*') and ( p[9]='*') and (p[10]='%') t
- 请打印高手多多指点,关于打印标签,急呀,今天开始郁闷了。
- 一个很奇怪的问题,在线等
- ehlib中的datagrideh的ondrawcolumncell出错,原因何在??
- 关于api函数
- 单位买复印机,请问什么型号的好一些?
- 怎么在DELPHI6.0中实现查看自己的IP的功能
- 紧急求助,急!
- Delphi7中XPColorMap怎么用,我看了说明,可还是不会用
下面文章来源:
lu0.126.comHOOK并不是万能的.而且,这里有个很好的例子就是整个OS启动中第一个被启动的WIN32进程:KERNEL32.DLL.大家很奇怪,KERNEL32.DLL是个DLL,怎么也会被作为进程加载?但是事实的确是这样的,顺便给大家再上一节98启动课吧.KERNEL32.DLL作为一个独立的进程,启动时加载了MSGSRV32.EXE.而MSGSRV32.EXE又启动了SPOOL32.EXE, SPOOL32.EXE启动了MPREXE.EXE.MPREXE.EXE可不能小看.我敢担保全中国没几个人真正知道它的作用的.MPREXE.EXE不仅是网络客户端部件启动的核心,更是WIN98的SERVICE的SCM.所有的WIN98的SERVICE都是由MPREXE.EXE启动的.WIN98的SERVICE都在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices里呆者哩.大家都傻眼了吧.:DDD 有一点很令人奇怪, 那就是如果MPREXE.EXE运作不正常,那么SHELL绝对起不来.SHELL却是有MSGSRV32.EXE启动的.看来MPREXE和MSGSRV32有一套内部沟通机制啊.有了SHELL,就什么都有了.其他的东西被SHELL启动就难说准了.反正80%的程序是由SHELL启动的.好了,WIN98启动暂且讲到这里.我们继续原先的话题.KERNEL32.DLL居然就无法用HOOK入侵.大家如果不信的话,就试试看吧.
比如改成:system.ini->boot->shell=taskman.exe
启动WINDOWS以后,桌面就没了,但运行菜单在,也可以做很多事。
改回来用启用时按F8进入dos->cd \windows->edit system.ini
system.ini->boot->shell=Explorer.exe
重起外壳:var
aa:Thandle;
begin
aa:=findwindow('progman',nil);
postmessage(aa,wm_quit,0,0);
winexec('explorer.exe',sw_show)end;
用delphi好象做不出来。