无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: lxl1638
打印 上一主题 下一主题

[PECMD X86 & X64 V4.0.2011.0501版] WinPE命令解释程序 & WinPE登录命令。

    [复制链接]
2191#
 楼主| 发表于 2009-7-18 11:01:46 | 只看该作者
原帖由 coolg 于 2009-7-18 10:07 发表


只有这几样东东:

VB3.0做的?估计可用不了。
回复

使用道具 举报

2192#
发表于 2009-7-18 11:38:15 | 只看该作者
原帖由 lqcai 于 2009-7-17 12:58 发表
SOFTWARE 配置单元的 Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18\ProfileImagePath 的值必修修改,只在 SYSTEM 指定 USERPROFILE 以及修改 DEFAULT 的 Software\Microsoft\Windows\CurrentVers ...

谢谢lqcai指出了最为关键的地方:SOFTWARE 配置单元的 Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18\ProfileImagePath 的值必修修改,微软PE2.x/3.0把它默认设定在%systemroot%\system32\config\systemprofile,假如你不喜欢这个默认值,应该把它设定成与环境变量USERPROFILE有相同的指向,例如是x:\Users\Default。单是把第一项Shell Folders全部清空是不足够的。

[ 本帖最后由 khauyeung 于 2009-7-18 11:56 编辑 ]
回复

使用道具 举报

2193#
 楼主| 发表于 2009-7-18 12:17:40 | 只看该作者
原帖由 khauyeung 于 2009-7-18 11:38 发表

谢谢lqcai指出了最为关键的地方:SOFTWARE 配置单元的 Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18\ProfileImagePath 的值必修修改,微软PE2.x/3.0把它默认设定在%systemroot%\system32\confi ...


SOFTWARE 一处要改

DEFAULT 有4处要改:
[HKEY_LOCAL_MACHINE\_DEFAULT\Software\Microsoft\MediaPlayer\Preferences]
"ObfuscatedSyncPlaylistsPath"=

[HKEY_LOCAL_MACHINE\_DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]

[HKEY_LOCAL_MACHINE\_DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
这里建议清空

[HKEY_LOCAL_MACHINE\_DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\feedplat]
"CachePath"=

其实本人在前面已提供了完整的注册表文件了:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=145836&page=1#pid1734213
这个链接中本人已提供了一份完整的注册表,已包括了SOFTWARE 要修改的一处地方和DEFAULT要修改的4处地方。

[ 本帖最后由 lxl1638 于 2009-7-18 12:20 编辑 ]
回复

使用道具 举报

2194#
发表于 2009-7-19 13:21:41 | 只看该作者
如果开启了 LOGO 命令,至少要执行一次 TEXT 命令,
否则在 LOGO 窗口会卡死,这个问题下次更新再完善。

=======

没发觉问题.如有问题.可能是IMG内核的.
回复

使用道具 举报

2195#
发表于 2009-7-22 22:55:14 | 只看该作者
V3.5.0715.300版

老九請教...下面代碼哪邊有問題...執行完畢後視窗不會關閉...

KILL \%FIXDLL% 也有改成KILL \ 測試了 問題依舊...

謝謝

_SUB FIXDLL,W300H100,FIXDLL,,,-1
LABE SNMSG,L20T27W200H24,準備中...
FORX %SYSTEMROOT%\SYSTEM32\*.DLL,GETFile,0,CALL RUNFIX
KILL \%FIXDLL%
_END

_SUB RUNFIX
NAME FILENAME=%GETFile%.DLL
CALL %FILENAME%
LABE SNMSG,L20T27W200H24,%FILENAME% 已重新註冊
_END

CALL @FIXDLL

[ 本帖最后由 jzdai0903 于 2009-7-22 23:50 编辑 ]
回复

使用道具 举报

2196#
 楼主| 发表于 2009-7-23 00:46:23 | 只看该作者
_SUB FIXDLL,W300H100,FIXDLL,,,-1
LABE SNMSG,L20T27W200H24,準備中...
FORX %SYSTEMROOT%\SYSTEM32\*.DLL,GETFile,0,CALL RUNFIX
KILL \%FIXDLL%
_END

_SUB RUNFIX
NAME FILENAME=%GETFile%.DLL
CALL %FILENAME%
LABE SNMSG,L20T27W200H24,%FILENAME% 已重新註冊
_END

CALL @FIXDLL

KILL \%FIXDLL%
这里窗口还没有建立,如何又来关闭?
回复

使用道具 举报

2197#
发表于 2009-7-23 09:02:26 | 只看该作者
WIN7PE3.0下已经成功使用老九的 PECMD.EXE,桌面壁纸可以正常显示了。

ini 文件:

EXEC =!CMD.EXE /C "autorun.cmd"
EXEC =!CMD.EXE /C win7pe.cmd
SHEL %SystemRoot%\System32\explorer.exe


autorun.cmd 负责后台启动网络,安装软件。

win7pe.cmd 负责导入注册表,设置屏幕分辨率,启动 winpeshl, 这样壁纸就正常显示了,这是 tinyhe 发现的,我测试果真如此。
回复

使用道具 举报

2198#
发表于 2009-7-23 09:23:01 | 只看该作者
原帖由 kinglion 于 2009-7-23 09:02 发表
WIN7PE3.0下已经成功使用老九的 PECMD.EXE,桌面壁纸可以正常显示了。

ini 文件:

EXEC =!CMD.EXE /C "autorun.cmd"
EXEC =!CMD.EXE /C win7pe.cmd
SHEL %SystemRoot%\System32\explorer.exe


aut ...

老九的 PECMD.EXE对桌面壁纸一向是正常显示的,没有禁制。Win7PE3.0在使用Windows Explorer资源管理器作外壳之所以不能正常显示桌面壁纸,据称是微软所种下的限制,跟盗版XP显示黑背景一样,与PECMD.EXE无关。你用的%SystemRoot%\System32\explorer.exe看似是以bsexplorer作外壳,不是Windows Explorer,桌面壁纸可以显示是正常的,不显示才是不正常!假如你使用的外壳真是Windows Explorer资源管理器,桌面壁纸又可以正常显示,那就恭喜你了,因为你已经解开了中外很多人几个月来心中的谜,快快公诸同好吧!

[ 本帖最后由 khauyeung 于 2009-7-23 09:43 编辑 ]
回复

使用道具 举报

2199#
发表于 2009-7-23 09:39:45 | 只看该作者
原帖由 khauyeung 于 2009-7-23 09:23 发表

老九的 PECMD.EXE对桌面壁纸一向是正常显示的,没有禁制。Win7PE3.0在使用Windows Explorer资源管理器作外壳之所以不能正常显示桌面壁纸,据云是微软所种下限制,跟盗版XP显示黑背景一样,与PECMD.EXE无关。你 ...



呵呵,是啊,微软是禁止在PE下使用其资源管理器。

可是我的确试过了,在WIN7PE下用老九的 pecmd.exe,壁纸的确不显示,是黑色背景,好像与BS EXPLORER或者 wr explore无关,但是只要再调用一次 WINPESHL.EXE就可以显示壁纸了。我不清楚是不是我哪里搞错了?

khauyeung,你也可以这样试一试看。

[ 本帖最后由 kinglion 于 2009-7-23 09:45 编辑 ]
回复

使用道具 举报

2200#
发表于 2009-7-23 09:51:08 | 只看该作者
原帖由 kinglion 于 2009-7-23 09:39 发表



呵呵,是啊,微软是禁止在PE下使用其资源管理器。

可是我的确试过了,在WIN7PE下,用老九的 pecmd.exe,壁纸的确不显示,是黑色背景,好像与BS EXPLORER或者 wr explore无关,但是只要再调用一次 WINPE ...
khauyeung,你也可以这样试一试看。


BS EXPLORER一向可以显示桌面壁纸,你之所以在PECMD下面能显示应是使用不当!我再重申一次,现阶段倘能在Windows Explorer作外壳的情况下显示桌面壁纸,绝对是个大发现!我已经试过无数次,不想再化时间尝试,因为我不可能会战胜微软的专家的。你有好消息就关照一下好了!

[ 本帖最后由 khauyeung 于 2009-7-23 10:00 编辑 ]
回复

使用道具 举报

2201#
发表于 2009-7-23 11:30:53 | 只看该作者
原帖由 khauyeung 于 2009-7-23 09:23 发表

老九的 PECMD.EXE对桌面壁纸一向是正常显示的,没有禁制。Win7PE3.0在使用Windows Explorer资源管理器作外壳之所以不能正常显示桌面壁纸,据称是微软所种下的限制,跟盗版XP显示黑背景一样,与PECMD.EXE无关。 ...



我已经用你的 win7pe_rtm_cn下测试,导入壁纸注册表信息后,启动后设置完桌面已经成功显示壁纸,不过一闪而过。如图。

回复

使用道具 举报

2202#
发表于 2009-7-23 20:37:26 | 只看该作者
原帖由 kinglion 于 2009-7-23 11:30 发表



我已经用你的 win7pe_rtm_cn下测试,导入壁纸注册表信息后,启动后设置完桌面已经成功显示壁纸,不过一闪而过。如图。

66359

请不要给出误导的讯息:“启动设置完桌面后已经成功显示壁纸”的说法是不确的。你设定的注册值只是在Windows Explorer外壳被载入以前生效,故墙纸只是一闪而过。Explorer外壳被载入后,微软刻意埋下限制,把HKCU\Control Panel\Desktop下的Wallpaper项目清空,并把类型(Type)由02改为01(REG_SZ),我相信还有其他确认盗版的设定,这些设定令墙纸不再显示,只留下黑色背景。

[ 本帖最后由 khauyeung 于 2009-7-23 20:38 编辑 ]
回复

使用道具 举报

2203#
发表于 2009-7-23 23:24:47 | 只看该作者
有个小想法 可不可以给PECMD加这几个功能:
1.生成随机数。可以生成制定位数的随机数 这个有时候很有用,比如我想让开机的图片和壁纸每次随即。
2.让PEMD可以执行配置文件里的某一部分,比如在配置文件中定义了好几个_SUB  然后在PECMD后加参数可以执行指定的某一个,这样的话好多配置文件就可以合并了。
3.给PECMD再加一页,做个自己的类似CMD的执行窗口,并且可以让PECMD的命令执行后有回显。现在虽然是执行PECMD的命令,但好多时候还得到CMD下去执行。并且执行后没回显,也不知道执行成功没。这样它更独立,更加完美了。

只是些自己的小想法,不知道合理不, 老九不要丢转啊。呵呵
回复

使用道具 举报

2204#
发表于 2009-7-24 08:20:13 | 只看该作者
原帖由 khauyeung 于 2009-7-23 20:37 发表

请不要给出误导的讯息:“启动设置完桌面后已经成功显示壁纸”的说法是不确的。你设定的注册值只是在Windows Explorer外壳被载入以前生效,故墙纸只是一闪而过。Explorer外壳被载入后,微软刻意埋下限制,把H ...




抱歉我说的不准确,explorer是这样的把DESKTOPBACKGROUND有关项个清空了,最早使用PESHELL切换不同的SHELL就可以看出,如果CMD为SHELL,壁纸显示一切正常,以切换到EXPLORER就黑色了,我认为还是在注册表上搞小动作,如果是PE,注册表的很多项都被设置了,我跟踪过,微软在不同的启动情况下(比如SETUP时或者安装程序回滚时等等其实也是一个PE环境)注册表相关项不同,有些服务不同,disable或者enable等等,只要我们找到了相关项就会有办法,有道是 道高一尺魔高一丈
回复

使用道具 举报

2205#
发表于 2009-7-24 11:59:24 | 只看该作者

给PECMD提一个建议,分拆为两个版本

PECMD通过老九的不断完善,功能越来越强大,最近又支持到了PE2.X甚至3.0了,放眼现在的PE,基本全是用PECMD来完成初始化的,可见PECMD的强大,但随着PECMD功能越来越强大,支持的PE越来越广泛,体积也随之增大,关键是在不同PE版本范围内同一命令实现的方法已完全不同。这样,会不会使效率降低呢?觉得如果PECMD拆分为两个版本,一个在PE1.X是适用,一个在2.X及3.0上适用会不会更好呢?毕竟2.0以上的PE同1.X的PE是完全不同的核心。这样,PECMD的效率会更高一些吧?大家可以讨论论坛,当然,这事还得老九说了算,毕竟,开发程序的东西不是我等想像的那么容易。
回复

使用道具 举报

2206#
发表于 2009-7-24 22:37:43 | 只看该作者
请问如果INI文件里参数里含有//(如网址),如何能避免//被视为注释?有转义的符号可用吗~谢谢!
回复

使用道具 举报

2207#
发表于 2009-7-25 00:51:53 | 只看该作者
PECMD.EXE V3.5.628.269F版开始好象没有最小模式了
回复

使用道具 举报

2208#
发表于 2009-7-25 16:37:59 | 只看该作者
不知老九是否可以把现在的PECMD.EXE拆分为两个版呢。PE1.X用一个版,PE2.0以上另做一个版,毕竟2.0以上核心的PE,同1.X的完全不同了。同样的功能,实现的方法可能有很大的差异,分开版本后,应该针对性更强,效率更高吧。
回复

使用道具 举报

2209#
 楼主| 发表于 2009-7-25 18:01:57 | 只看该作者
原帖由 lrbin50 于 2009-7-25 16:37 发表
不知老九是否可以把现在的PECMD.EXE拆分为两个版呢。PE1.X用一个版,PE2.0以上另做一个版,毕竟2.0以上核心的PE,同1.X的完全不同了。同样的功能,实现的方法可能有很大的差异,分开版本后,应该针对性更强,效 ...

PECMD.EXE 从 V3.5.628.296 版开始的更新主要是对 VistaPE 和 Win7PE 进行更新,
同时也兼容 XP/2003 系列 WinPE ,但不再支持 PELOGON.EXE,这仅仅是开始,

可能在 VistaPE 和 Win7PE 中还存在不少问题,希望大家多测试。
回复

使用道具 举报

2210#
发表于 2009-7-25 18:06:04 | 只看该作者

回复 #2228 kinglion 的帖子

Winpeshl在启动shell前做了一些系统初始化的工作,包括设置墙纸。设置的方式是查询键值Software\Microsoft\Windows NT\CurrentVersion\WinPE下的 CustomBackground,如果有文件就
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:\\xxx.bmp", SPIF_SENDWININICHANGE| SPIF_UPDATEINIFILE);
如果没有就
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, NULL, 0);

而PECMD是设置注册表键值,然后让Windows自己刷新
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, NULL,SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE);
不知道是不是这样造成的奇怪现象。
回复

使用道具 举报

2211#
发表于 2009-7-25 18:27:10 | 只看该作者

关于DISP参数问题

PECMD自2.5版后Disp有多个参数时就不能一次性成功。比较了一下两个版本的代码,发现你把原if (DISP_CHANGE_SUCCESSFUL !=(ChangeDisplaySettings(&dmNew, CDS_UPDATEREGISTRY)))
改成了if (!(ChangeDisplaySettings(&dmNew, CDS_UPDATEREGISTRY)))
然而DISP_CHANGE_SUCCESSFUL == 0,如果ChangeDisplaySettings成功,上句的判断就成了if(!0)==if(1)。
不知这是否是Disp有多个参数时就不能一次性成功的原因。
这是个小问题,很多PE默认是不安装显卡驱动的。
回复

使用道具 举报

2212#
发表于 2009-7-25 19:48:33 | 只看该作者
能开个培训班吗???
回复

使用道具 举报

2213#
 楼主| 发表于 2009-7-25 20:27:36 | 只看该作者
原帖由 yamingw 于 2009-7-25 18:06 发表
Winpeshl在启动shell前做了一些系统初始化的工作,包括设置墙纸。设置的方式是查询键值Software\Microsoft\Windows NT\CurrentVersion\WinPE下的 CustomBackground,如果有文件就
SystemParametersInfo(SPI_SE ...


PECMD既设置键值(兼容NT5.X的PE),也执行SystemParametersInfo,兼容正常的系统。
你在正常的系统中执行 WALL 就知道了。
回复

使用道具 举报

2214#
 楼主| 发表于 2009-7-25 20:33:30 | 只看该作者
原帖由 yamingw 于 2009-7-25 18:27 发表
PECMD自2.5版后Disp有多个参数时就不能一次性成功。比较了一下两个版本的代码,发现你把原if (DISP_CHANGE_SUCCESSFUL !=(ChangeDisplaySettings(&dmNew, CDS_UPDATEREGISTRY)))
改成了if (!(ChangeDisplaySet ...


如果有多个参数的话,DISP 分步执行,先设置分辨率,再设置色深,最后设置刷新率,所以DISP命令工作时可能比其它类似工具耗时稍多或有闪屏现象,目的是尽可能保证DISP命令中的部分参数能起任用。因为有些PE系统(如没有显卡驱动的)往往是刷新率或色深无法设置,只能设置分辨率。
这样的命令建议你在正常系统中试验,因为很多WinPE系统驱动不全或有问题,如果正常系统中可以使用,那么问题就不是命令,而是PE系统或它的驱动。

可以肯定,个别PE使用DISP命令时可能毫无效果或效果不全,这与DISK命令无关,你可以在这类PE中用其它类似工具试验,往往是刷新率无法设置。

[ 本帖最后由 lxl1638 于 2009-7-25 20:38 编辑 ]
回复

使用道具 举报

2215#
发表于 2009-7-27 08:44:29 | 只看该作者
请问一下老九:开始菜单(StartMenu)上面显示的PECMD使用说明,其中的“使用说明”四个中文字可以改为英文字“ HELP ”吗? 老外看英文菜单时不明所以,而且中文字在英文菜单出现到底有些怪怪的。
回复

使用道具 举报

2216#
 楼主| 发表于 2009-7-27 12:19:56 | 只看该作者
原帖由 khauyeung 于 2009-7-27 08:44 发表
请问一下老九:开始菜单(StartMenu)上面显示的PECMD使用说明,其中的“使用说明”四个中文字可以改为英文字“ HELP ”吗? 老外看英文菜单时不明所以,而且中文字在英文菜单出现到底有些怪怪的。


好象非简体中文WinPE系统(语言ID不是16进制0x804,十进制2052的系统)是没有自动安装这项菜单的,如有需要可以通过LINK命令自己安装,菜单名自已设定。如果不是这样,下次更新时再处理一下,让非简体系统自定义菜单名称,最好你整一个英文版(支持显示中文的WinPE来让本人测试)。
另,非简体中文WinPE系统中的托盘图标提示字符串是可以自己修改的,在资源字符串找找。

[ 本帖最后由 lxl1638 于 2009-7-27 12:28 编辑 ]
回复

使用道具 举报

2217#
发表于 2009-7-27 20:43:51 | 只看该作者
原帖由 lxl1638 于 2009-7-27 12:19 发表


好象非简体中文WinPE系统(语言ID不是16进制0x804,十进制2052的系统)是没有自动安装这项菜单的,如有需要可以通过LINK命令自己安装,菜单名自已设定。如果不是这样,下次更新时再处理一下,让非简体系统自定 ...

我的系统属英文语系(en-US),但地区码(LOCALE)设定为0804,PECMD把它误认为简体中文WinPE系统。英文Win7PE_7600en.iso已经放到FTP://zhxy9804/khauyeung/win7pe给你测试。

[ 本帖最后由 khauyeung 于 2009-7-27 22:04 编辑 ]
回复

使用道具 举报

2218#
 楼主| 发表于 2009-7-28 13:36:18 | 只看该作者
原帖由 khauyeung 于 2009-7-27 20:43 发表

我的系统属英文语系(en-US),但地区码(LOCALE)设定为0804,PECMD把它误认为简体中文WinPE系统。英文Win7PE_7600en.iso已经放到FTP://zhxy9804/khauyeung/win7pe给你测试。


你先试试,保留原本的地区码+中文字库看看能否显示中文,如果可以,本人就不用改PECMD.EXE了。
回复

使用道具 举报

2219#
发表于 2009-7-28 20:35:58 | 只看该作者
原帖由 lxl1638 于 2009-7-28 13:36 发表


你先试试,保留原本的地区码+中文字库看看能否显示中文,如果可以,本人就不用改PECMD.EXE了。

保留原本的地区码+中文字库只能在网页显示中文,PECMD的HELP文件的中文内容不能正常显示。
回复

使用道具 举报

2220#
 楼主| 发表于 2009-7-30 10:40:19 | 只看该作者
原帖由 khauyeung 于 2009-7-27 20:43 发表
我的系统属英文语系(en-US),但地区码(LOCALE)设定为0804,PECMD把它误认为简体中文WinPE系统。英文Win7PE_7600en.iso已经放到FTP://zhxy9804/khauyeung/win7pe给你测试。


用你的这个 Win7PE,很简单搞定了,挂载注册表单元 SYSTEM 上来,只需修改两处:
1、将 "ControlSet001\Control\Nls\Language" 项下的 "InstallLanguage" 和 "Default"
     都设置成 0409。
2、将 "ControlSet001\Control\Nls\Locale" 项下的 "@" 和 "(Default)" 都设置成 00000409。
     键名 "@" 在中文系统里是最上面一个 "(默认)"。

修改方法参照下面的第一和第二幅图,修改后 PECMD.EXE 按原有的设计不安装菜单了,也支持中文显示,效果见第三、第四幅图。
如果你这个 Win7PE 要对老外发布,有3条建议:
1、简单介绍 PECMD.EXE 的作用,明确说明启动后 PECMD.EXE 会设置三组热键,否则无意按到这些热键以为是系统出了问题:
Ctrl + Alt + Del 呼出任务管理器、Ctrl + Alt + A 快速降低显示属性、Ctrl + Alt + M 显示或隐藏PECMD.EXE的托盘提示图标;

其中第一组热键是无法修改的,这是一个低级键盘钩子,采用的微软系统的默认设置,
但第二、第三组热键是可以通过资源字符串来修改的,包括第二组热键设置的显示属性。
2、修改一下PECMD.EXE托盘图标的提示,在你这个Win7PE所用的PECMD.EXE中,托盘图标的提示为 "Type TrayIcon MenuTip in here."(本人英文很差,随便打上去的,可能更新版的PECMD.EXE不是这个字符串),你英文好,将这个改一下,在资源字符串中修改;
3、如有可能,更优化一下启动速度,本人觉得还是不够快。


当然你可以用 LINK 命令给 PECMD.EXE 安装一条英文名称的菜单项,最后附上修改好的注册表单元。
SYSTEM.RAR (246.75 KB, 下载次数: 50)

[ 本帖最后由 lxl1638 于 2009-7-30 11:27 编辑 ]

未命名1.PNG (29.94 KB, 下载次数: 101)

未命名1.PNG

未命名2.PNG (29.14 KB, 下载次数: 102)

未命名2.PNG

未命名3.PNG (68.4 KB, 下载次数: 106)

未命名3.PNG

未命名4.PNG (61.12 KB, 下载次数: 102)

未命名4.PNG
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-7-4 15:18

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表