无忧启动论坛

标题: 发布一条PE快速启用网络的技巧,由不得你不信,极限冲刺前3秒!2010年12月8日冒泡更新 [打印本页]

作者: yh_tl    时间: 2009-7-14 15:18
标题: 发布一条PE快速启用网络的技巧,由不得你不信,极限冲刺前3秒!2010年12月8日冒泡更新
2010年12月14日
公布了一个参考PE供各位参考:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=183329&page=1&extra=page%3D1


更新内容及部分说明:
1,将以前的NETX.CMD和NETX.INI完美的合二为一了,大家可以将这个技巧用在其他地方,这样PECMD的INI能够方便地实现自我加载,还减少了一个文件,呵呵,觉得听方便的。要注意的地方就是CMD的EXIT命令不能另起一行,要跟在前面的命令后面。而且要保证CMD命令的最后一定要成功退出,不然会报错,不过对结果没什么影响。
2,加入了pseudo  的在通知区域显示图标的功能。
其中
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f
出自psendo的原创
IPCONFIG >nul是在H3的PE里发现的技巧,大大加快了找到SHOWICON键值的速度,但是如果网络加载快的话,还是有注册不到SHOWICON的现象,于是本人进行了改进如下:
:ShowIcon
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&GOTO NEXT
MD %TEMP%\1 &&GOTO ShowIcon &MD %TEMP%\2 &&GOTO ShowIcon &MD %TEMP%\3 &&GOTO ShowIcon &MD %TEMP%\4 &&GOTO ShowIcon &MD %TEMP%\5 &&GOTO ShowIcon &GOTO END
目的是达到了,不过本人是DOS菜鸟,应该会有精简些的写法,希望pseudo等DOS批处理高手帮忙改进一下,谢谢!
3,去掉了一些重复启动的服务,因为在网络安装时那些服务已经自动启动了,没必要多此一举。
4,关于IE部分DLL的注册,要参照自己的核心来定,我现在的核心都不用注册了,写在这里的是因为觉得这几个比较重要,作个备忘。
5,这里去除了一些小动作,主要是核心优化了,速度比以前更快了,包括加载显卡,声卡,以及注册DLL的速度,都能提高一倍以上的速度
6,核心主要作的更改是:
a,启动CryptSrv
b,注册 initpki.dll
c,将声卡的两个服务改成手动
d,将其它启动时不可能启动的服务改成手动或禁止
等,其它的记不起来了:)

**关于showicon段再作点解释
在我的测试过程中,不加延时的话,在虚拟机中和实机CPU主频在1g左右的机型,一般可以直接注册到SHOWICON键值,但是在我的实机测试中,基本上2秒钟不到所有的网络命令都已经执行完毕了,大概还必须等待1秒钟左右的时间才能才能注册到SHOWICON键值,所以只能够被动等待,如果简单在前面加个延时2秒,对机型慢的又是无谓的浪费时间,因为机型慢的根本不需要等待时间

我的这段命令的运行的过程是:首先延时0.5秒,然后注册SHOWICON,不成功,再次延时0.5秒,再次注册SHOWICON, ……如此反复,如果5次都没注册上,那基本肯定是网卡没装上。为了避免死循环,第5次过后它就会自动退出这个循环状态。而其中任何一次注册成功的话,都会自动跳出这个循环,这样就照顾了慢的,也兼顾了快的

我测试的结果是,一般启用网络(其中包括自动获取IP地址的时间)需要4,5秒钟及以上的机型,确实不需要任何等待时间的



**12月9日更新部分注释:

1,MOVE "%Desktop%\Internet Explorer.LNK" "%QuickLaunch%"
;是属于技巧性的处理动作,没什么特别含义,是为了后面的“LINK %QuickLaunch%\Internet Explorer,%SystemRoot%\IE6\IEXPLORE.EXE”在快速启动栏显示IE快捷方式,不用KILL EXPLORER就能及时可用.


2,Rundll32 SetupAPI,InstallHinfSection Install 128 %SystemRoot%\INF\NETICON.INI
;也是技巧性的处理动作,是为了不用刷新桌面,就能及时显示网上邻居的图标,命名为INI文件,是怕别的程序调用它,里面只有简单的几句话:
[version]
Signature="$Windows NT$"
[Install]
AddReg=Add.Reg
[Add.Reg]
HKCU,"Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu","{208D2C60-3AEA-1069-A2D7-08002B30309D}",0x00010001,0


3,LINK %Desktop%\宽带断开,RASDIAL.EXE,我的连接 /D,NETSHELL.DLL#17
;小细节,完全可以这么用,好像没什么人注意到这个细节,变成另外增加了一个批处理

4,..\7z.exe x NET\NET_PART.7z -y -aos -o"%SystemRoot%" >nul
; >nul 在这里非常有用,特别是解压数量比较多的小文件时,能大大缩短解压时间






@ECHO OFF
PUSHD %~dp0
IF /I "%1"=="" PECMD LOAD NETX.CMD
IF /I "%1"=="IE6" MD %TEMP%\IE6 &MOVE "%Desktop%\Internet Explorer.LNK" "%QuickLaunch%" &PECMD LOAD NETX.CMD
IF /I "%1"=="WLAN" MD %TEMP%\WLAN &PECMD LOAD NETX.CMD
IF /I "%1"=="PPPOE" MD %TEMP%\PPPOE &PECMD LOAD NETX.CMD

:ShowIcon
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&GOTO NEXT
MD %TEMP%\1 &&GOTO ShowIcon &MD %TEMP%\2 &&GOTO ShowIcon &MD %TEMP%\3 &&GOTO ShowIcon &MD %TEMP%\4 &&GOTO ShowIcon &MD %TEMP%\5 &&GOTO ShowIcon &GOTO END
:NEXT
MD %SystemRoot%\LANOK &NET USER Guest /active:yes >nul &NET USER Guest /passwordreq:no >nul &Rundll32 SetupAPI,InstallHinfSection Install 128 %SystemRoot%\INF\NETICON.INI
:END
DEL /Q %SystemRoot%\INF\*.PNF %SystemRoot%\INF\INFCACHE.1 &PECMD FILE %TEMP%\* &EXIT


``
_SUB LAN
TEXT 正在启用网络支持,请稍候 …… L80 T50
EXEC =!7z.exe x NET_PART.7z -y -aos -o"%SystemRoot%"
IFEX %TEMP%\WLAN,DEVI DRV_WLAN.CAB!DEVI DRV_LAN.CAB
`EXEC InfCacheBuild.exe %SystemRoot%
UPNP -pnp -cn WINPE -wg WORKGROUP
UPNP -c p -i MS_TCPIP
UPNP -c c -i MS_MSCLIENT
UPNP -c s -i MS_SERVER
SERV Dhcp
SERV Lanmanserver
`SERV LmHosts
IFEX %TEMP%\WLAN,CALL WLAN
KILL EXPLORER.EXE
_END

_SUB WLAN
SERV EventLog
UPNP -v -c p -i MS_NDISUIO
UPNP -v -c s -i MS_WZCSVC
SERV WZCSVC
_END

_SUB IE6
EXEC =!7z.exe x IE6.7z -y -aos -o"%SystemRoot%"
LINK %QuickLaunch%\Internet Explorer,%SystemRoot%\IE6\IEXPLORE.EXE
FONT %SystemRoot%\FONTS
EXEC REGSVR32 /S /N /I INETCPL.CPL
TEAM CALL $MSHTML.DLL|CALL $MSHTMLED.DLL|CALL $INETCOMM.DLL|CALL $HHCTRL.OCX        `|CALL $Flash.ocx
EXEC =Rundll32 SetupAPI.dll,InstallHinfSection DefaultInstall 132 %SystemRoot%\IE6\IE.INF
EXEC IEXPLORE.EXE
_END

_SUB PPPOE
EXEC =!7z.exe x NET_PPPOE.7z -y -aos -o"%SystemRoot%"
UPNP -c p -i MS_L2TP
UPNP -c p -i MS_PPTP
UPNP -c p -i MS_PPPOE
EXEC %SystemRoot%\SYSTEM32\RASPHONE.PBK
UPNP -c p -i MS_WANARP
UPNP -c p -i MS_NDISWAN
UPNP -c s -i MS_RASCLI
UPNP -c s -i MS_RASSRV
UPNP -c s -i MS_RASMAN
UPNP -c s -i MS_STEELHEAD
SERV TAPISRV
SERV RASMAN
LINK %Desktop%\宽带断开,RASDIAL.EXE,我的连接 /D,NETSHELL.DLL#17
LINK %Desktop%\宽带连接,RASPHONE.PBK
_END
``
//NET安装程序开始
IFEX %SystemRoot%\LANOK,IFEX %TEMP%\WLAN,CALL LAN!CALL LAN
IFEX %TEMP%\PPPOE,CALL PPPOE
IFEX %TEMP%\IE6,CALL IE6
//NET安装程序结束

囧,发现问题了,主要是这个命令好久没用,可能后来把它改错了,现在改正了
怕COPY有错,还是加个附件吧 NETX.7z (1.22 KB, 下载次数: 174)


*********************************************************************
还是再发个自用的全CMD快速启用网络的命令吧,系统中要增加一个SC.EXE的小文件,这个是官方的,正常系统中有

@ECHO OFF
PUSHD %~dp0
IF /I "%1"=="IE6" MOVE "%Desktop%\Internet Explorer.LNK" "%QuickLaunch%" &If Exist %SystemRoot%\LANOK GOTO IE6
IF /I "%1"=="PPPOE" If Exist %SystemRoot%\LANOK GOTO PPPOE

PECMD TEXT 正在启用网络支持,请稍候 …… L80 T50
..\7z.exe x NET\NET_PART.7z -y -aos -o"%SystemRoot%" >nul
IF /I "%1"=="WLAN" (PECMD DEVI NET\DRV_WLAN.CAB) ELSE PECMD DEVI NET\DRV_LAN.CAB
PECMD UPNP -pnp -cn WINPE -wg WORKGROUP
PECMD UPNP -c p -i MS_TCPIP
PECMD UPNP -c c -i MS_MSCLIENT
PECMD UPNP -c s -i MS_SERVER
SC START Dhcp >nul
SC START Lanmanserver >nul
rem SC START LmHosts >nul
IF /I "%1"=="WLAN" SC START EventLog >nul &PECMD UPNP -v -c p -i MS_NDISUIO &&PECMD UPNP -v -c s -i MS_WZCSVC &&SC START WZCSVC >nul
PECMD KILL EXPLORER.EXE

:ShowIcon
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&GOTO NEXT
MD %TEMP%\1 &&GOTO ShowIcon &MD %TEMP%\2 &&GOTO ShowIcon &MD %TEMP%\3 &&GOTO ShowIcon &MD %TEMP%\4 &&GOTO ShowIcon &MD %TEMP%\5 &&GOTO ShowIcon &GOTO END
:NEXT
MD %SystemRoot%\LANOK &NET USER Guest /active:yes >nul &NET USER Guest /passwordreq:no >nul &(IF /I "%1"=="IE6" GOTO IE6) &(IF /I "%1"=="PPPOE" GOTO PPPOE)
Rundll32 SetupAPI,InstallHinfSection Install 128 %SystemRoot%\INF\NETICON.INI &GOTO END

:IE6
..\7z.exe x NET\IE6.7z -y -aos -o"%SystemRoot%" >nul
PECMD FONT %SystemRoot%\FONTS
PECMD LINK %QuickLaunch%\Internet Explorer,%SystemRoot%\IE6\IEXPLORE.EXE
REGSVR32 /S /N /I INETCPL.CPL
FOR %%i IN (MSHTML.DLL MSHTMLED.DLL INETCOMM.DLL HHCTRL.OCX) DO REGSVR32 /S %%i
Rundll32 SetupAPI.dll,InstallHinfSection DefaultInstall 132 %SystemRoot%\IE6\IE.INF
START IExplore.EXE &GOTO END

:PPPOE
..\7z.exe x NET\NET_PPPOE.7z -y -aos -o"%SystemRoot%" >nul
PECMD UPNP -c p -i MS_L2TP
PECMD UPNP -c p -i MS_PPTP
PECMD UPNP -c p -i MS_PPPOE
START %SystemRoot%\SYSTEM32\RASPHONE.PBK
PECMD UPNP -c p -i MS_WANARP
PECMD UPNP -c p -i MS_NDISWAN
PECMD UPNP -c s -i MS_RASCLI
PECMD UPNP -c s -i MS_RASSRV
PECMD UPNP -c s -i MS_RASMAN
PECMD UPNP -c s -i MS_STEELHEAD
SC START TAPISRV >nul
SC START RASMAN >nul
PECMD LINK %Desktop%\宽带断开,RASDIAL.EXE,我的连接 /D,NETSHELL.DLL#17
PECMD LINK %Desktop%\宽带连接,RASPHONE.PBK

:END
DEL /Q %SystemRoot%\INF\*.PNF %SystemRoot%\INF\INFCACHE.1
PECMD FILE %TEMP%\* &EXIT

全批处理,跟上面的加载方式速度基本没差别,但是要参照我的写法才行
启用网络.7z (1.16 KB, 下载次数: 241)

[ 本帖最后由 yh_tl 于 2010-12-14 20:22 编辑 ]
作者: yichya    时间: 2009-7-14 15:23
`EXEC !NET START EVENTLOG
EXEC !NET START TCPIP
EXEC !NET START DHCP
EXEC !NET START NLA
`EXEC !NET START LMHOSTS
EXEC !NET START SERVER

把exec !net start 都换成SERV看着更舒服。
不过这么点,够吗?PPPOE就完了。
别的看着还不错,比如net user的那些想法很好。

你的问题是什么?
作者: yh_tl    时间: 2009-7-14 15:45
PPPOE在上面NET.INI中有一句"LINK !%Desktop%\宽带连接,%SystemRoot%\PE_CMD.CMD,PPPOE,RASDLG.dll#19
"
调用的命令如下:(可以即点即用)
:PPPOE
START RASPHONE.PBK
PECMD.EXE UPNP -c p -i MS_L2TP
PECMD.EXE UPNP -c p -i MS_PPTP
PECMD.EXE UPNP -c p -i MS_PPPOE
PECMD.EXE UPNP -c p -i MS_WANARP
PECMD.EXE UPNP -c p -i MS_NDISWAN
PECMD.EXE UPNP -c s -i MS_RASCLI
PECMD.EXE UPNP -c s -i MS_RASSRV
PECMD.EXE UPNP -c s -i MS_RASMAN
PECMD.EXE UPNP -c s -i MS_STEELHEAD
PECMD.EXE EXEC @NET START TAPISRV
PECMD.EXE EXEC @NET START RASMAN
PECMD.EXE EXEC @NET START NETMAN

PECMD.EXE LINK %Desktop%\宽带连接,%SystemRoot%\SYSTEM32\RASPHONE.PBK
EXIT

[ 本帖最后由 yh_tl 于 2009-7-14 15:49 编辑 ]
作者: yh_tl    时间: 2009-7-14 15:47
无线网络的
:WLAN
PECMD.EXE DEVI DRIVERS_NET_WIRELESS.CAB
InfCacheBuild.exe %SystemRoot%
rem PECMD.EXE UPNP -pnp
PECMD.EXE UPNP -v -c p -i MS_NDISUIO
PECMD.EXE UPNP -v -c s -i MS_WZCSVC
PECMD.EXE EXEC NET START WZCSVC
If Exist "%StartMenu%\启用无线网络.LNK" DEL "%StartMenu%\启用无线网络.LNK"
DEL /Q %SystemRoot%\INF\*.PNF %SystemRoot%\INF\INFCACHE.1
EXIT
作者: lxl1638    时间: 2009-7-14 15:52
对启动网络还深有研究啊。
能否用类似的方法及到 PE2.x 或 PE3.x 中?
作者: yichya    时间: 2009-7-14 15:55
还是模块化的呢,LZ研究研究,要是能拆开就好了,选择性的装进PE,基础弄个包,PPPOE和WLAN分别再弄一个,多好。
作者: yh_tl    时间: 2009-7-14 16:15
原帖由 lxl1638 于 2009-7-14 15:52 发表
对启动网络还深有研究啊。
能否用类似的方法及到 PE2.x 或 PE3.x 中?

报告老大,我想应该可以的,因为我网络方面没在其他的地方做什么处理,只是改变了执行命令的方式
作者: lrbin50    时间: 2009-7-14 16:45
为什么用PECMD比DOS命令快呢?按理PECMD也是调用DOS的啊。
作者: neo4026    时间: 2009-7-14 16:54
原帖由 lrbin50 于 2009-7-14 16:45 发表
为什么用PECMD比DOS命令快呢?按理PECMD也是调用DOS的啊。

批处理效率 低得很
而且这里有一个大家都没意识到的东西
开启服务是多线程的
作者: mapeimapei    时间: 2009-7-14 17:13
V10.1启动网络支持要18秒??还以为偶的启动时间最短呢。
作者: 66369    时间: 2009-7-14 17:21
任你多好的"优化".

开启服务的时间.是最长的.有办法解决这问题.就好办.请LZ努力下.
作者: yh_tl    时间: 2009-7-14 17:29
原帖由 mapeimapei 于 2009-7-14 17:13 发表
V10.1启动网络支持要18秒??还以为偶的启动时间最短呢。

嘿嘿,在我现在的测试机上确实是18秒,要知道启动时间与机器配置是有关,换好的机器肯定大家都能更快
作者: lxl1638    时间: 2009-7-14 17:37
原帖由 lrbin50 于 2009-7-14 16:45 发表
为什么用PECMD比DOS命令快呢?按理PECMD也是调用DOS的啊。


在PECMD脚本中,本人一直反对调用CMD或BAT批处理,原因就是执行效率低。
如修改注册表、启动/停止服务、注册DLL/OCX、建立快捷方式等,PECMD绝对比CMD批处理快。
原因是批处理中每执行一项任务就要启动一次控制台工具,即反复启动其它EXE来完成
这些任务;而PECMD处理这些操作都是在同一进程内进行。

                批处理操作                                             PECMD操作
建立快捷方式      shortcut.exe(每建立1个快捷方式,就要启动1次shortcut)     LINK
启动/停止服务   NET START(每操作一项服务,就要启动一次 NET)            SERV
注册DLL/OCX     regsvr32.exe /s(每注册一个文件,就要启动一次regsvr32)  CALL
修改注册表      regedit.exe /s(每处理一个reg,就要启动一次regedit)     REGI


如果PECMD是通过调用DOS来完成它的功能的话,PECMD就不是PECMD了,这样的PECMD很多人都能做出来,
就目前来说,PECMD的表现比老外的XPEInit、WinPE7ldr、7PEldr任何一个都要好:
高效的登录速度、强大的功能、脚本化的配置、自由的启动控制、超小的体积和全面的兼容性,这6方面可以说是几乎完美。

附上一个今天刚更新的PECMD,现在在虚拟机中测试,文件也是从虚拟机中发的。
新增一条命令 HOME ,主要是时不时被一些恶意网修改主页、禁用主页、禁用注册表,
以往是手动恢复,手动多了觉得不方便,现在集成到PECMD中,PE也有用得到的时候。

HOME 命令对大白菜来说,既可做好事,也可做坏事。

┣━━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃      │格式│HOME [IE主页],[数值1],[数值2]                                                               ┃
┃      ├──┼──────────────────────────────────────────────┨
┃      │功能│设置IE主页、锁定IE主页及禁用注册表编辑器。                                                  ┃
┃      ├──┼──────────────────────────────────────────────┨
┃      │参数│■IE主页: 只支持http网页,输入时省略"http://",如"
www.mssb.com";该参数省略时设置为空白页。 ┃
┃'HOME'│    │■数值1 : 非0时锁定IE主页,即禁止修改IE主页,该参数省略时默认为0,可修改IE主页。            ┃
┃      │    │■数值2 : 非0时禁用注册表编辑器,该参数省略时默认为0,可使用注册表编辑器。                  ┃
┃      ├──┼──────────────────────────────────────────────┨
┃      │示例│HOME
www.sbms.com,1,1 或 HOME www.mssb.com                                                  ┃
┃      ├──┼──────────────────────────────────────────────┨
┃      │备注│※本命令在脚本或CMD批处理中均可使用;IE主页或注册表编辑器被恶意工具锁定时可用该命令解锁。   ┃
┣━━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫


[ 本帖最后由 lxl1638 于 2009-7-14 18:09 编辑 ]

pecmd.zip

101.81 KB, 下载次数: 105, 下载积分: 无忧币 -2


作者: lrbin50    时间: 2009-7-14 17:39
原帖由 lxl1638 于 2009-7-14 17:37 发表


在PECMD脚本中,本人一直反对调用CMD或BAT批处理,原因就是执行效率低。
如修改注册表、启动/停止服务、注册DLL/OCX、建立快捷方式等,PECMD绝对比CMD批处理快。
原因是批处理中每执行一项任务就要启动一 ...

谢谢老九指教了!看来老九的PECMD真是好东东啊。
作者: lxl1638    时间: 2009-7-14 17:55
13楼,附上准备更新的PECMD,现在在虚拟机中测试。

在 XP、2003及其PE系统和WinPE2.1系统中测试均通过,
本人没有安装硬盘Vista、Win7,还没有在Win7PE中测试,也请有这类系统的朋友测试。

[ 本帖最后由 lxl1638 于 2009-7-14 18:05 编辑 ]
作者: mapeimapei    时间: 2009-7-14 18:13
SERV代替NET START后网络支持启动极快。。
作者: xianglang    时间: 2009-7-14 18:25
PECMD中的HOME,如何指定一个本地HTML文件作主页?
作者: yh_tl    时间: 2009-7-14 20:48
又有新发现了,启用网络的速度成功进入5秒内!
作者: lxl1638    时间: 2009-7-14 21:13
原帖由 xianglang 于 2009-7-14 18:25 发表
PECMD中的HOME,如何指定一个本地HTML文件作主页?


暂不支持,除非明天本人再更新一次。
你可以用 REGI 命令将 本地HTML 文件写入注册表,或者挂注册表上来修改。
作者: lrbin50    时间: 2009-7-14 21:24
楼主,我用了你的方法改造,无法成功。

未命名.jpg (14.75 KB, 下载次数: 123)

未命名.jpg

作者: yh_tl    时间: 2009-7-14 22:07
原帖由 lrbin50 于 2009-7-14 21:24 发表
楼主,我用了你的方法改造,无法成功。

这个,我也不好分析
我觉得你暂时不能够照搬我的命令,你应该结合你现在的参照修改使用,或者到时候我发个测试版PE上来,你就可以参考修改了
现在我的情况是:
NET_PART文件解压到SYSTEM32文件夹
INF文件是预先放在核心里的INF文件夹(怕解压他们的时候耽误时间,而且主要是他们压缩后并不占空间)
总之,方法是没问题的,你细心点,成功是肯定能够成功的

[ 本帖最后由 yh_tl 于 2009-7-14 22:10 编辑 ]
作者: NicTense    时间: 2009-7-14 22:10
我一直奇怪为什么这么慢,原来是pecmd执行批处理效率不行
楼主这个发现很有价值!
作者: yh_tl    时间: 2009-7-14 22:19
原帖由 lrbin50 于 2009-7-14 21:24 发表
楼主,我用了你的方法改造,无法成功。

对了,还有可能你是直接用了这条命令的原因:
EXEC !7z.exe x NET_PART.7z -y -aos -o"%SystemRoot%\SYSTEM32"
应该改成
EXEC !7z.exe x NET_PART.7z -y -aos -o"%SystemRoot%"
因为我们的压缩包不一样!
作者: lrbin50    时间: 2009-7-14 22:21
我改造也是按我的启用语句一句一句改造的啊。真晕。
作者: 潮退潮生    时间: 2009-7-14 22:30
支持个,兴奋。上次我就想提速了,可除了小马没几个有响应,没想到用PECMD来提速,我好笨啊。只在批处理上面搞了个小动作。
http://bbs.wuyou.net/forum.php?m ... 1%CD%CB%B3%B1%C9%FA
作者: 潮退潮生    时间: 2009-7-14 22:31
原帖由 lrbin50 于 2009-7-14 22:21 发表
我改造也是按我的启用语句一句一句改造的啊。真晕。

你可能复制不全必需文件。
作者: mapeimapei    时间: 2009-7-14 23:08
这个是5秒,呵呵。

@echo off
echo 正在加载网络,请稍候
cd /d %systemroot%\system
if /i "%1"=="ALL" goto other
pushd %ProgramFiles%\opera
IF EXIST flash.exe start /min /b flash.exe
popd

CLS
ECHO.
ECHO.
ECHO 复制必要文件...
ECHO.
ECHO.
COPY %SystemRoot%\SYSTEM\Drivers\*.* %SystemRoot%\SYSTEM32\Drivers >nul 2>nul
if not exist %SystemRoot%\INF MD %SystemRoot%\INF\ >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\INF\*.* %SystemRoot%\INF >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\NETCFGX.DLL %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\NETSHELL.DLL %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\NETMAN.DLL %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\MSWSOCK.DLL %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\TAPISRV.DLL %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\NET1.EXE %SystemRoot%\SYSTEM32 >nul 2>nul


cls
ECHO.
ECHO.
ECHO 提取驱动程序...
ECHO.
ECHO.
FOR /F %%i IN ('Dir /B /A-D ^".\DRIVERS_NET.CAB^"') DO PECMD DEVI ".\%%i"
START /Wait .\InfCacheBuild.exe %SystemRoot%
PECMD UPNP -pnp

cls
ECHO.
ECHO.
ECHO 安装网络组件...
ECHO.
ECHO.
for %%i in (ACTXPRXY.DLL,NETCFGX.DLL,NETSHELL.DLL,MLANG.DLL) do REGSVR32 /s %%i
::REGSVR32 /s JSCRIPT.DLL
PECMD UPNP -c p -i MS_TCPIP
PECMD UPNP -c c -i MS_MSCLIENT
PECMD UPNP -c s -i MS_SERVER
PECMD UPNP -c s -i MS_RASCLI
PECMD UPNP -c s -i MS_RASSRV
PECMD UPNP -c s -i MS_STEELHEAD

cls
ECHO.
ECHO.
ECHO 启动网络服务...
ECHO.
ECHO.
SET K=HKLM\SYSTEM\CurrentControlSet\Services&&SET W=AutoShareServer&&SET S=AutoShareWks
REG ADD %K%\Lanmanserver\parameters /v %S% /t REG_DWORD /d 0 /f
REG ADD %K%\Lanmanserver\parameters /v %W% /t REG_DWORD /d 0 /f
REG ADD %K%\lanmanworkstation\parameters /v %S% /t REG_DWORD /d 0 /f
REG ADD %K%\lanmanworkstation\parameters /v %W% /t REG_DWORD /d 0 /f
REG ADD "HKLM\SOFTWARE\Microsoft\Driver Signing" /f /v "Policy" /t REG_BINARY /d 00
PECMD SERV TCPIP
PECMD SERV DHCP
PECMD SERV NLA
PECMD SERV LMHOSTS
::PECMD SERV SERVER
PECMD UPNP -pnp -cn WinPE -wg WORKGROUP

cls
ECHO.
ECHO.
ECHO 删除无用文件并创建快捷链接...
ECHO.
ECHO.
DEL /Q %WinDir%\INF\*.PNF %WinDir%\INF\INFCACHE.1 >nul
PECMD IFEX %ProgramFiles%\TM2008\Bin\TM.exe,LINK %Desktop%\TM2008,%ProgramFiles%\TM2008\Bin\TM.exe
PECMD IFEX %ProgramFiles%\opera\operausb.exe,LINK %Desktop%\opera浏览器,%ProgramFiles%\opera\operausb.exe
::PECMD LINK !%Desktop%\硬盘QQ,%SystemRoot%\system\QQ\QQ.CMD,,%SystemRoot%\SYSTEM\QQ\QQ.ICO
PECMD LINK %Desktop%\PENETCFG网络设置,%SystemRoot%\System\PENETCFG.exe
PECMD LINK !%Desktop%\启用无线和PPPOE支持,%SystemRoot%\System\START_NET.CMD,ALL,%SystemRoot%\SYSTEM\NET_PART.ICO
PECMD LINK !%Programs%\网络工具\启用无线和PPPOE支持,%SystemRoot%\System\START_NET.CMD,ALL,%SystemRoot%\SYSTEM\NET_PART.ICO
PECMD LINK %Programs%\网络工具\PENETCFG网络设置,%SystemRoot%\System\PENETCFG.exe
PECMD LINK %Programs%\网络工具\远程协助,%SystemRoot%\System\网络工具\TTVNC.EXE
PECMD LINK %Programs%\网络工具\http file server,%SystemRoot%\System\网络工具\hfs2.exe
PECMD LINK %Programs%\网络工具\MAC扫描,%SystemRoot%\System\网络工具\MAC扫描.EXE
PECMD LINK %Programs%\网络工具\局域网查看器,%SystemRoot%\System\网络工具\LANSEEV1.59.EXE
PECMD LINK %Programs%\网络工具\飞鸽传书,%SystemRoot%\System\网络工具\IPMSG.EXE
PECMD LINK %Programs%\网络工具\远程登陆工具,%SystemRoot%\System\网络工具\PUTTY.EXE
If Exist "%USERPROFILE%\桌面\启用网卡支持.LNK" DEL "%USERPROFILE%\桌面\启用网卡支持.LNK"
REGSVR32 /s %windir%\system32\stobject.dll
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "\Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f
PECMD FIND flash.exe,KILL flash.exe
EXIT

:other
CLS
ECHO.
ECHO.
ECHO 安装无线网络组件...
ECHO.
ECHO.
COPY /y %SystemRoot%\SYSTEM\RASPHONE.EXE %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\RASPHONE.PBK %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\wzcsvc.dll %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\wzcsapi.dll %SystemRoot%\SYSTEM32 >nul 2>nul
FOR /F %%i IN ('Dir /B /A-D ^".\DRIVERS_NET_WIRELESS.CAB^"') DO PECMD DEVI ".\%%i"
START /Wait .\InfCacheBuild.exe %SystemRoot%
PECMD UPNP -pnp
for %%i in (wzcsapi.dll,wzcsvc.dll,rsaenh.dll) do REGSVR32 /s %%i
PECMD UPNP -v -c p -i MS_NDISUIO
PECMD UPNP -v -c s -i MS_WZCSVC
PECMD SERV EVENTLOG
PECMD SERV WZCSVC

cls
ECHO.
ECHO.
ECHO 启动PPPOE服务...
ECHO.
ECHO.
REGSVR32 /s NETMAN.DLL
PECMD UPNP -c p -i MS_L2TP
PECMD UPNP -c p -i MS_PPTP
PECMD UPNP -c p -i MS_PPPOE
PECMD UPNP -c s -i MS_RASMAN
PECMD UPNP -c p -i MS_WANARP
PECMD UPNP -c p -i MS_NDISWAN
PECMD SERV TAPISRV
PECMD SERV NETMAN
PECMD SERV RASMAN
::START RASPHONE.EXE -F %SystemRoot%\System32\RASPHONE.PBK -D 宽带连接
PECMD LINK !%Desktop%\挂断ADSL,%SystemRoot%\System\HANGUP.CMD,,HANGUP.ICO
PECMD LINK %Desktop%\ADSL宽带连接,%SystemRoot%\SYSTEM32\RASPHONE.PBK,,RASPHONE.EXE
PECMD LINK %Programs%\网络工具\ADSL 宽带连接,%SystemRoot%\SYSTEM32\RASPHONE.PBK,,RASPHONE.EXE
PECMD LINK !%Programs%\网络工具\挂断ADSL,%SystemRoot%\System\HANGUP.CMD,,HANGUP.ICO
If Exist "%USERPROFILE%\桌面\启用无线和PPPOE支持.LNK" DEL "%USERPROFILE%\桌面\启用无线和PPPOE支持.LNK"
PECMD FIND EXPLORER.EXE,KILL EXPLORER.EXE
EXIT

作者: 潮退潮生    时间: 2009-7-14 23:12
原帖由 mapeimapei 于 2009-7-14 23:08 发表
这个是5秒,呵呵。

关键在SERV
作者: yh_tl    时间: 2009-7-14 23:25
原帖由 mapeimapei 于 2009-7-14 23:08 发表
这个是5秒,呵呵。

恭喜,恭喜
虽然你的命令比我的繁琐,但是少了个解压的时间,如果再将命令简化点,4秒看来都有可能了
作者: lrbin50    时间: 2009-7-14 23:26
原帖由 潮退潮生 于 2009-7-14 22:31 发表

你可能复制不全必需文件。

哦,可能是7Z.EXE还没复制完文件,EXEC后可加=号,试试去。
作者: helloman    时间: 2009-7-15 06:43
虚拟机里面启动小马10.1的网卡部分需要32秒左右,更新27楼的内容start_NET.CMD后,启动网卡需要24秒左右,确实稍快一些!
作者: lrbin50    时间: 2009-7-15 09:36
还是按CMD来改造,调用PECMD.EXE来用。成功,速度加快了,用INI的方法没成功。不搞了,反正CMD一样的。
作者: NicTense    时间: 2009-7-15 12:03
原帖由 mapeimapei 于 2009-7-14 23:08 发表
这个是5秒,呵呵。


如果局域网的话,pppoe那部分是不是可以不用加载?
作者: 北斗    时间: 2009-7-15 12:37
好的,再次收藏保存下来。thx
作者: lrbin50    时间: 2009-7-15 13:16
*感谢台湾朋友 jzdai0903 的指点,将SERV SERVER 改成 SERV lanmanserver,网络共享也正常了
我的用SERV SERVER共享正常啊。
作者: 潮退潮生    时间: 2009-7-15 14:23
原帖由 NicTense 于 2009-7-15 12:03 发表


如果局域网的话,pppoe那部分是不是可以不用加载?

对,用路由的PPPOE也可以不用,我就是用路由的。
作者: yh_tl    时间: 2009-7-15 14:59
原帖由 lrbin50 于 2009-7-15 13:16 发表
*感谢台湾朋友 jzdai0903 的指点,将SERV SERVER 改成 SERV lanmanserver,网络共享也正常了
我的用SERV SERVER共享正常啊。

是吗?
能把你的命令发上来研究下吗?
看看到底是怎么回事
作者: 66369    时间: 2009-7-15 15:06
又有进展.可喜可贺.
作者: secowu    时间: 2009-7-15 15:13
恭喜各大PE跟进提升。。。。
作者: NicTense    时间: 2009-7-15 15:25
原帖由 潮退潮生 于 2009-7-15 14:23 发表

对,用路由的PPPOE也可以不用,我就是用路由的。


用路由的pppoe,拨号是路由的事情了,跟电脑无关,对电脑来说就是局域网了

既然可以不挂载这部分,我试一下,少了好几个,说不定3秒就解决了

之前就一直觉得这个网络支持弄10几20秒实在太慢了
作者: yichya    时间: 2009-7-15 15:36
我觉得大家应该把网络支持那个4M的大包(不算IE)拆成3个部分:LAN,WLAN,PPPOE。这样可能还能减少复制文件的时间。
作者: 北斗    时间: 2009-7-15 15:40
原帖由 yichya 于 2009-7-15 15:36 发表
我觉得大家应该把网络支持那个4M的大包(不算IE)拆成3个部分:LAN,WLAN,PPPOE。这样可能还能减少复制文件的时间。


赞成,站长同学来拆吧,不要拆完少零件:)

很多时候根本用不到wireless ,pppoe用到的也很少,可能跟大多数时候,环境都是有线的路由有关。

拆分下来,启动网络应该会快些
作者: ku100    时间: 2009-7-15 15:40
标题: 回复 #41 yichya 的帖子
这应该是个不错思路。
作者: weijun189    时间: 2009-7-15 17:08
强大,看到了各位高人的创作过程,学习了
作者: yh_tl    时间: 2009-7-16 08:52
原帖由 mapeimapei 于 2009-7-14 23:08 发表
这个是5秒,呵呵。

刚测试了你的10.3,在本人的机子上是9秒,看来你还有不少提升空间
作者: yh_tl    时间: 2009-7-16 09:01
预告:核心加速也获得几个重大突破,本人的核心在本人的虚拟机中由原来老式加载方法的19秒,现在已经接近10秒(标准启动,全部MMC工具和本人的一个6.3M大小的压缩工具包全部解压到X盘,和加载全部其他工具的快捷方式,并启用WALL),正在紧张调试兼容性和寻求其他方法,争取在本机挺进10秒内……
附小马10.3在本机的对比数据:启动系统17秒,启动网络9秒
(启动系统时间从加载SETUPLDR开始计时,到桌面图标刷新成功结束}
作者: yh_tl    时间: 2009-7-16 09:11
这里还有一个问题向大家请问一下:
这句
`EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U
具体作用到底干什么用的,我发现使用
CALL $SHELL32.DLL,DllInstall,#1,U
的时候其实系统是报错的,我怀疑以前也没注册成功,所以我已经精简掉了这句命令,发现对系统没有任何影响,不知道是否还有其他的可能?
作者: neo4026    时间: 2009-7-16 09:13
原帖由 yh_tl 于 2009-7-16 09:01 发表
预告:核心加速也获得几个重大突破,本人的核心在本人的虚拟机中由原来老式加载方法的19秒,现在已经接近10秒(标准启动,全部MMC工具和本人的一个6.3M大小的压缩工具包全部解压到X盘,和加载全部其他工具的快捷 ...

PENETCFG其实跟你采用的方式一样
进程自己做了相当于bartpe -i -c -s那一大堆服务处理的东西
不过服务的开启是单线程的 所以会稍慢 但也比版内的PE腰快(程序要检测是否有服务开启出错 出错了就终止运行)
作者: NicTense    时间: 2009-7-16 09:24
原帖由 yh_tl 于 2009-7-16 09:11 发表
这里还有一个问题向大家请问一下:
这句
`EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U
具体作用到底干什么用的,我发现使用
CALL $SHELL32.DLL,DllInstall,#1,U
的时候其实系统是报错的,我怀疑以前也 ...


你用的什么版本会有这句啊?

应该是没什么用的,shell32.dll应该没必要另外在加上注册语句的
作者: 66369    时间: 2009-7-16 09:29
可能有个度的问题.

先把IE加载好.而后....

立即上网....你接不通的....需等下.

说明服务.驱动的加载.随机器不同.有一个硬过程.

看到的5秒.是程序执行的窗口显示时间.后台的时间难估计的.
作者: yh_tl    时间: 2009-7-16 09:34
原帖由 neo4026 于 2009-7-16 09:13 发表

PENETCFG其实跟你采用的方式一样
进程自己做了相当于bartpe -i -c -s那一大堆服务处理的东西
不过服务的开启是单线程的 所以会稍慢 但也比版内的PE腰快(程序要检测是否有服务开启出错 出错了就终止运行)

我还没留意网上其他的加速方式,全部白手起家……
呵呵,这样也好,大家能看到一些新想法和新思路了
作者: yh_tl    时间: 2009-7-16 09:44
原帖由 66369 于 2009-7-16 09:29 发表
可能有个度的问题.

先把IE加载好.而后....

立即上网....你接不通的....需等下.

说明服务.驱动的加载.随机器不同.有一个硬过程.

看到的5秒.是程序执行的窗口显示时间.后台的时间难估计的.

把这句UPNP -pnp -cn WINPE -wg WORKGROUP移到
UPNP -c p -i MS_TCPIP
UPNP -c c -i MS_MSCLIENT
UPNP -c s -i MS_SERVER
UPNP -pnp -cn WINPE -wg WORKGROUP
这里,你就可以即时上网了
我现在网络和IE同时加载,第7秒的时候就可以打开网页了,当然你的网络速度也要快

1楼的即时支持局域网是没问题的
(网络没开,你先打开IE干什么?……,呵呵)
-
*先打开IE,会造成冲突,会延长网络的加载速度

[ 本帖最后由 yh_tl 于 2009-7-16 10:03 编辑 ]
作者: yh_tl    时间: 2009-7-16 09:56
原帖由 NicTense 于 2009-7-16 09:24 发表


你用的什么版本会有这句啊?

应该是没什么用的,shell32.dll应该没必要另外在加上注册语句的

老毛桃的都有啊
作者: yh_tl    时间: 2009-7-16 09:58
刚看了,小马的,H3的都有
作者: yh_tl    时间: 2009-7-16 10:06
原帖由 66369 于 2009-7-16 09:29 发表
看到的5秒.是程序执行的窗口显示时间.后台的时间难估计的.

后台时间6秒钟
作者: lrbin50    时间: 2009-7-16 10:10
原帖由 yh_tl 于 2009-7-16 09:11 发表
这里还有一个问题向大家请问一下:
这句
`EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U
具体作用到底干什么用的,我发现使用
CALL $SHELL32.DLL,DllInstall,#1,U
的时候其实系统是报错的,我怀疑以前也 ...

这个,估计要老九来回答了,希望楼主得到答案说帮我们解释一下,我也疑惑这东东究竟是做什么的,是否是必要的。
作者: yichya    时间: 2009-7-16 10:19
那东西就是在快速启动那扔一显示桌面。
作者: yh_tl    时间: 2009-7-16 10:25
原帖由 yichya 于 2009-7-16 10:19 发表
那东西就是在快速启动那扔一显示桌面。

谢谢yichya,那就是去掉它完全没问题了
作者: NicTense    时间: 2009-7-16 11:28
原帖由 yichya 于 2009-7-16 10:19 发表
那东西就是在快速启动那扔一显示桌面。


这句应该等同于
CALL $SHELL32.DLL,DllInstall,#1,U

如果我没理解错的话
#1,应该是当dll文件已经安装的时候
而u代表反安装

所以这个命令按道理应该是反安装(或者应该称为注册)shell32.dll文件

不明白为什么要这么做,但是想不通跟快速启动的显示桌面有什么关系,按道理显示桌面相关的东西应该在explorer.exe里面的
作者: yh_tl    时间: 2009-7-16 11:51
原帖由 NicTense 于 2009-7-16 11:28 发表

如果我没理解错的话
#1,应该是当dll文件已经安装的时候
而u代表反安装

所以这个命令按道理应该是反安装(或者应该称为注册)shell32.dll文件

不明白为什么要这么做,但是想不通跟快速启动的显示桌面有什么关系,按道理显示桌面相关的东西应该在explorer.exe里面的...

是的,这个确实跟速度没什么关系,但是我想能不要的命令还是去掉的好,虽然这个提升不了多少速度,积少成多嘛
作者: NicTense    时间: 2009-7-16 12:02
原帖由 yh_tl 于 2009-7-16 11:51 发表

是的,这个确实跟速度没什么关系,但是我想能不要的命令还是去掉的好,虽然这个提升不了多少速度,积少成多嘛



你误会了,我不是说跟速度什么关系

我是不明白跟 快速启动栏的显示桌面图标有什么关系
作者: yh_tl    时间: 2009-7-16 12:14
原帖由 NicTense 于 2009-7-16 12:02 发表



你误会了,我不是说跟速度什么关系

我是不明白跟 快速启动栏的显示桌面图标有什么关系

看来这个要问老九了
作者: secowu    时间: 2009-7-16 12:15
66369把要修正的弄进去,整个更新包
作者: 潮退潮生    时间: 2009-7-18 00:20
看来PE要修正的地方还真不少,能不用批处理的全不用,才能快速启动。有空大家都朝这个方向努力吧,MMC、IE、REGDOC.CMD、加载驱动,要改的地方还真不少。
作者: mapeimapei    时间: 2009-7-22 10:14
原帖由 yh_tl 于 2009-7-16 09:11 发表
这里还有一个问题向大家请问一下:
这句
`EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U
具体作用到底干什么用的,我发现使用
CALL $SHELL32.DLL,DllInstall,#1,U
的时候其实系统是报错的,我怀疑以前也 ...


注册shell32.dll和快速启动栏中的“显示桌面”有联系。。其它的还不知道。。
作者: rstart    时间: 2009-7-22 10:45
CALL $SHELL32.DLL,DllInstall,#1,U

这句 在 log 记录中实际并没有执行,里面写的参数错误
作者: mapeimapei    时间: 2009-7-22 11:19
原帖由 rstart 于 2009-7-22 10:45 发表
CALL $SHELL32.DLL,DllInstall,#1,U

这句 在 log 记录中实际并没有执行,里面写的参数错误

CALL $SHELL32.DLL,DllInstall,#1,U 找不到元素。

但是不执行的话快速启动栏式没有“显示桌面”的。
作者: 135956    时间: 2009-7-22 17:58
好久没回来看过了.这法子漂亮呀.
作者: lrbin50    时间: 2009-7-22 18:57
原帖由 mapeimapei 于 2009-7-22 11:19 发表

CALL $SHELL32.DLL,DllInstall,#1,U 找不到元素。

但是不执行的话快速启动栏式没有“显示桌面”的。

这样啊,怪了,高人解释一下啊。
作者: yamingw    时间: 2009-7-22 19:17
标题: 回复 #67 mapeimapei 的帖子
CALL $SHELL32.DLL,DllInstall,#1,U 找不到元素。

但是不执行的话快速启动栏式没有“显示桌面”的。

SHELL32.DLL在执行DllInstall(参数U不是Uninstall的意思)时调用了PE中没有的DLL,所以会显示找不到元素,这几个DLL不影响Windows的功能,没有他们Shell32照样正常初始化。PECMD.INI中记录的很多错误信息其实是来自Windows。
作者: junyee    时间: 2009-7-22 22:48
早就注意到CMD 的执行效率很低.

也曾想过用PECMD 来完成这一过程,就是没行动.
呵...

我感觉7z.exe的效率也很低,不如换用7zip 的另一个命令行版本 7zG.exe 不过体积不如7z.exe小巧.是有窗口显示进度的.速度感觉比7z.exe要快得多
作者: yh_tl    时间: 2009-7-30 09:40
冲击极限,再次更新!
作者: lrbin50    时间: 2009-7-30 10:55
不错的研究,最小需要的文件列表你删除了?能贴出来么?
作者: yichya    时间: 2009-7-30 10:57
3秒?LZ的网络模块精简的怎样了?
作者: yh_tl    时间: 2009-7-30 11:52
原帖由 lrbin50 于 2009-7-30 10:55 发表
不错的研究,最小需要的文件列表你删除了?能贴出来么?

请问是哪个文件列表?
如果是基本网络的最小需要的文件列表,你参照我另外的哪个帖子,只采用基本网络部分的文件就可以了
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=146174
作者: yh_tl    时间: 2009-7-30 11:53
原帖由 yichya 于 2009-7-30 10:57 发表
3秒?LZ的网络模块精简的怎样了?

应该算是已经定型了
作者: rstart    时间: 2009-7-30 12:16
呃。。。 我这里石机测试。。。 显示成功驱动,可是还要等一会儿才能连上网络。 石机测试。。。
作者: yh_tl    时间: 2009-7-30 12:23
请问楼上,你是先装的IE吗?
我这里,网络,IE同步加载,6秒钟就可以连通外网了(极限是5秒)
作者: yh_tl    时间: 2009-7-30 12:56
刚刚测试了一下实机,确实好象比虚拟机,稍慢一点
我这里实机,
网络,IE同步加载,7秒钟连通外网没问题(极限6秒),如果手忙脚乱,最快速度上网的话,会出现"正在检测代理服务器的提示"
作者: qwer123    时间: 2009-7-30 13:43
不错哦,终于解决了,下载测试下
作者: sblinux    时间: 2009-8-22 13:13
我最近也在搞这个,对水兄的PE改造,请问你的PE_CMD.CMD文件的内容是什么?
另外
REGSVR32 /S NETCFGX.DLL
REGSVR32 /S NETSHELL.DLL
REGSVR32 /S NETMAN.DLL
这三个命令的作用是什么?我看你的文件中把它们给PASS掉了

[ 本帖最后由 sblinux 于 2009-8-22 13:15 编辑 ]
作者: hhh333    时间: 2009-10-31 18:00
好象宽带拨号还是不行!

作者: blithewind    时间: 2009-10-31 18:14
原帖由 hhh333 于 2009-10-31 18:00 发表
好象宽带拨号还是不行!
74139



重出江湖了,期待经典呀
作者: shn    时间: 2009-11-1 16:11
if /i not "%1"=="WUYOU" START %SystemRoot%\IE6\IExplore.EXE

if /i "%1"=="WUYOU" START %SystemRoot%\IE6\IExplore.EXE http://bbs.wuyou.net/

请问这两句什么意思??
作者: yh_tl    时间: 2010-12-8 12:09
2010.12.8冒泡更新
作者: 穿云鹤    时间: 2010-12-8 18:25
辛苦了,只是我不会用,等高手来加载到PE中。支持一下。
作者: pseudo    时间: 2010-12-8 19:05
原帖由 yh_tl 于 2009-7-14 15:18 发表
...
2,加入了pseudo  的在通知区域显示图标的功能。
其中
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f
应该是psendo的原创,但是如果网络加载快的话,就不能找到SHOWICON键值
其中IPCONFIG >NUL是在H3的PE里发现的技巧,的确大大加快了找到SHOWICON的速度
不过网络加载快的话,还是有注册不到SHOWICON的现象,于是本人进行了改进如下:
:ShowIcon
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&GOTO NEXT
MD %TEMP%\1 &&GOTO ShowIcon &MD %TEMP%\2 &&GOTO ShowIcon &MD %TEMP%\3 &&GOTO ShowIcon &MD %TEMP%\4 &&GOTO ShowIcon &MD %TEMP%\5 &&GOTO ShowIcon &GOTO END
目的是达到了,不过本人是DOS菜鸟,应该会有精简些的写法,希望pseudo等DOS批处理高手帮忙改进一下,谢谢!
...

不算是网络加载快的问题。PECMD WAIT 500、多个GOTO ShowIcon都没必要。
ipconfig在0pe中是这样用的
  1. ::连接后在通知区域显示图标
  2. IF /I "%1"=="ALL" ipconfig
  3. IF /I "%1"=="ALL" FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "\Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f
  4. ......
复制代码

如果某些服务没启动,就用ipconfig,会卡很久,以至于不该调用ipconfig。
作者: yh_tl    时间: 2010-12-8 19:49
:ShowIcon
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&GOTO NEXT
MD %TEMP%\1 &&GOTO ShowIcon &MD %TEMP%\2 &&GOTO ShowIcon &MD %TEMP%\3 &&GOTO ShowIcon &MD %TEMP%\4 &&GOTO ShowIcon &MD %TEMP%\5 &&GOTO ShowIcon &GOTO END

是这样的,因为你一般碰不到我这样的情况,在我的测试过程中,不加延时的话,在虚拟机中和实机CPU主频在1g左右的机型,一般可以直接注册到SHOWICON键值,但是在我的实机测试中,基本上2秒钟不到所有的网络命令都已经执行完毕了,大概还必须等待1秒钟左右的时间才能才能注册到SHOWICON键值,所以只能够被动等待,如果简单在前面加个延时2秒,对机型慢的又是无谓的浪费时间,因为机型慢的根本不需要等待时间

我的这段命令的运行的过程是:首先延时0.5秒,然后注册SHOWICON,不成功,再次延时0.5秒,再次注册SHOWICON, ……如此反复,如果5次都没注册上,那基本肯定是网卡没装上。为了避免死循环,第5次过后它就会自动退出这个循环状态。而其中任何一次注册成功的话,都会自动跳出这个循环,这样就照顾了慢的,也兼顾了快的

我测试的结果是,一般启用网络(其中包括自动获取IP地址的时间)需要4,5秒钟及以上的机型,确实不需要任何等待时间的

[ 本帖最后由 yh_tl 于 2010-12-9 00:03 编辑 ]
作者: yh_tl    时间: 2010-12-8 19:55
原帖由 pseudo 于 2010-12-8 19:05 发表

ipconfig在0pe中是这样用的
::连接后在通知区域显示图标
IF /I "%1"=="ALL" ipconfig
IF /I "%1"=="ALL" FOR /F %%i IN ('@reg qu ...


对不起,老大,好久没关注PE,看来是我搞错了
作者: yh_tl    时间: 2010-12-8 20:02
原帖由 pseudo 于 2010-12-8 19:05 发表
如果某些服务没启动,就用ipconfig,会卡很久,以至于不该调用ipconfig。


我没碰到过这种现象,用了之后确实注册到SHOWICON的时间缩短了很多,确实挺好用的!以前我都已经上网了,好像还要过6秒钟左右,之后才能找到SHOWICON键值
作者: M    时间: 2010-12-8 20:06
学习了,顺便踩下楼主冒的泡泡。嘻嘻。
作者: hhh333    时间: 2010-12-8 22:11
标题: 回复 #90 yh_tl 的帖子
这个IPCONFIG确实是我加上去的,以前就碰到这个键值找不到,但这个比较诡异,进系统以后如果点开始菜单在网络那里停一下,这个键值也会出来。所以有时候觉得语句没错,就是找不到,用一下开始时菜单又可以找到了,后来发现用IPCONFIG也有这样的效果就用了。
作者: yh_tl    时间: 2010-12-9 00:06
原帖由 hhh333 于 2010-12-8 22:11 发表
这个IPCONFIG确实是我加上去的,以前就碰到这个键值找不到,但这个比较诡异,进系统以后如果点开始菜单在网络那里停一下,这个键值也会出来。所以有时候觉得语句没错,就是找不到,用一下开始时菜单又可以找到了 ...


囧,又搞错了,对不起,老大
作者: dfw9    时间: 2010-12-9 13:22
感谢楼主对PE模块加载net的研究,尤其对showicon段的解释,对老机器启动慢的理解非常透彻。
作者: moneyjin    时间: 2012-1-12 18:09
标题: 回复 #1 yh_tl 的帖子
感谢楼主研究出这么好的技巧!你说希望有人对下面这段代码简化一下:
:ShowIcon
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&GOTO NEXT
MD %TEMP%\1 &&GOTO ShowIcon &MD %TEMP%\2 &&GOTO ShowIcon &MD %TEMP%\3 &&GOTO ShowIcon &MD %TEMP%\4 &&GOTO ShowIcon &MD %TEMP%\5 &&GOTO ShowIcon &GOTO END
:NEXT
......

我也不是什么批处理高手,研究了下,把代码简化成下面这个样子,不敢说是优化了(红色部分是加上去的):

:ShowIcon
SET /A temp+=1
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&SET temp= &&GOTO NEXT
if %temp% lss 5 (GOTO ShowIcon) else (SET temp= &&GOTO END)
:NEXT
......

上面的IF和ELSE要在同一行才有效的!在XP核心的PE上测试通过,当然也可能有更简化更优化的写法,请其它高手参与了!

[ 本帖最后由 moneyjin 于 2012-1-12 18:12 编辑 ]
作者: Hhumor    时间: 2012-1-13 11:47
标题: 回复 #95 moneyjin 的帖子
刚放在PE里面测试,命令不错,可以显示

但是是修改后才行,小修改,把变量temp换个名称,不然会和临时文件目录冲突

我换成netico,问题解决 ,完美显示图标

修改后:
:ShowIcon
SET /A netico+=1
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&SET netico= &&GOTO NEXT
if %netico% lss 5 (GOTO ShowIcon) else (SET netico= &&GOTO END)
:NEXT




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3