无忧启动论坛

标题: 外置程序,想删就删,想加就加,老九等高手批改一下 [打印本页]

作者: coolg    时间: 2009-4-20 16:49
标题: 外置程序,想删就删,想加就加,老九等高手批改一下
最新下载在#118楼,请测试,多提建议!!!2009.05.06

首先感谢老九为大家提供这么好的工具.感谢打狗版主,WLDNA,nn2nn,
123mm,小马,pseudo,66966等大大教诲和支持,感谢所有无忧大大,不一一提名了

最近老是上不了无忧网站,在hwh132建议下,实现了 随加随删,自动搜索软件,可在进入桌面后,选择是否加载软件.YY软件更自由了
已YY 好两个,正在上传中...
这是新YY好PE,随加随删,大家试试 ,提出修改意见 090505
内核是老九的最新版

http://www.namipan.com/d/newCD.rar/fbe8f52feb9b12a15035832f8bf4afaba161186d20029805

      2009.05.05

呵呵
PE的外置程序,一直是令人烦心一件事.想加想删,都要重新修改配置文件.根据老九的思路,
我写了一个配置文件,已达到外置程序想删就删,想加就加,我奉献出来,我是个菜菜,写得不好,想请老九等高手帮忙修改润色一下.盼望大家把YY得更好.会修改内核的配置文件,就能实现多内核共享外置软件!!!
使用方法见20#21#楼
只要在外置程序里放两个特殊文件夹:一个桌面,一个快捷工具栏,其它程序随意放,想链接到桌面上,
就把程序放到桌面文件夹内,想链接快捷工具栏上,就放到快捷工具栏文件夹内,就这么简单,其它程序
自动链接到程序菜单上.
经过几天的努力,配置文件已优化,并对多个PE测试成功.支持多种文件挂载(EXE,WIM,CMD,BAT)也做了个PE,
请大家测试,谢谢

下载地址:  http://www.namipan.com/d/FreeYYPE.rar/e411f105d90d5473be0917b45666deebf63bbb17292b9205

[ 本帖最后由 coolg 于 2009-11-27 16:48 编辑 ]

Snap31.jpg (91.99 KB, 下载次数: 136)

Snap31.jpg

Snap32.jpg (103.17 KB, 下载次数: 117)

Snap32.jpg

Snap44.jpg (92.48 KB, 下载次数: 136)

Snap44.jpg

作者: coolg    时间: 2009-4-20 16:49
///////////////////////////////////////////////////////////
_sub created_dir1
  TEAM NAME WimName=%ProWIM%|fext n1=%ProWIM%
  find $%n1%=EXE,call Created_link1!find $%n1%=WIM,call Created_link1
  find $%n1%=CMD,call Created_link1!find $%n1%=BAT,call Created_link1
_end
_sub created_dir
  TEAM NAME WimName=%ProWIM%|fext n1=%ProWIM%
  find $%n1%=EXE,call Created_link!find $%n1%=WIM,call Created_link
  find $%n1%=CMD,call Created_link!find $%n1%=BAT,call Created_link
_end
_sub Created_link
envi b1=LINK %Desktop%\%WimName%,%ProWIM%
envi b2=LINK %Programs%\%todir%\%WimName%,%ProWIM%
envi b3=LINK %QuickLaunch%\%WimName%,%ProWIM%
find $%todir%=桌面,%b1%!CALL othlike
_end
_sub Created_link1
link %Programs%\%todir%\%dudir%\%WimName%,%ProWIM%
_end
_sub othlike
find $%todir%=快捷工具栏,%b3%!%b2%
find $%dudir%=,!link %Programs%\%todir%\%dudir%\%WimName%,%ProWIM%
_end
_SUB Created_Menu
name todir=%pa1%
forx %CurDir%\%todir%\*.*,ProWIM,0, CALL created_dir
forx @%CurDir%\%todir%\*,PA2,0, CALL created_dudir`双层文件夹
_END
_SUB created_dudir
name dudir=%PA2%
forx %CurDir%\%todir%\%dudir%\*.*,ProWIM,0, CALL created_dir1
_END
ENVI Programs=%USERPROFILE%\「开始」菜单\程序
ENVI Desktop=%USERPROFILE%\桌面
ENVI QuickLaunch=%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Quick Launch
//IFEX %Desktop%\加载外部配置.LNK,FILE %Desktop%\加载外部配置.LNK
FORX @%CurDir%\*,pa1,0,CALL Created_Menu
team envi b1=|envi b2=|envi b3=
LINK %Desktop%\加载外部配置,pecmd.exe load \%CurDir%\must.ini,,shell32.dll #19
///////////////////////////////////////////////////////////
` 注册WimShExt.DLL
CALL $%CurDir%\Wimtools\WimShExt.DLL
` 设置WIM基础挂载目录
REGI HKCU\Software\WimTool\AutoMountPath=%RamDisk%\WimPath
TEXT 创建WIM程序快捷方式……#0x00FFC0 L20 T480 R720 B580 *
LINK %Desktop%\WimTool,%CurDir%\WimTools\WimTool.EXE
//call @windows1
//EXEC =!%CurDrv%\WimTool\wimnt.exe /REG /mp B:\WIM /tp x:\temp




` 建立 GHOST8.3.WIM 映像内的 GhostExp.EXE 的快捷方式
LINK %Desktop%\GhostExp,%CurDir%\桌面\GHOST8.3.WIM,GhostExp.EXE,%CurDir%\桌面\GhostExp.ICO

[ 本帖最后由 coolg 于 2009-4-20 18:51 编辑 ]

Snap1.jpg (23.17 KB, 下载次数: 133)

Snap1.jpg

Snap18.jpg (100.9 KB, 下载次数: 125)

Snap18.jpg

作者: wfywyy    时间: 2009-4-20 17:07
坐上沙发看你帖!~~~~~~~
作者: 66369    时间: 2009-4-20 17:08
做的好.也得益于WIMTOOL.
作者: lxl1638    时间: 2009-4-20 17:08
大家YY,本人路过。
这个也可算PECMD FORX命令的范例了。

[ 本帖最后由 lxl1638 于 2009-4-20 17:11 编辑 ]
作者: zxyy    时间: 2009-4-20 17:10
与楼主同感,祝愿你早日成功,一齐分享。
作者: coolg    时间: 2009-4-20 17:17
标题: 回复 #5 lxl1638 的帖子
呵呵,老九不能路过,你的才是范例,我的不过是作业而已!
作者: rstart    时间: 2009-4-20 17:18
coolg ,请问 如何排除不想加入的目录呢 ??
作者: coolg    时间: 2009-4-20 17:26
这个只是想实现想加就加,想删就删,因为目录加上了也不影响使用,重要的是不占用内存!
更重要的是,想请大家帮忙YY

[ 本帖最后由 coolg 于 2009-4-20 17:29 编辑 ]
作者: tzxinqing    时间: 2009-4-20 17:35
这个想法好啊!支持一下!
作者: mapeimapei    时间: 2009-4-20 17:59
LZ真是快啊,呵呵。。过来支持一下

这个是偶这两天搞的,,http://bbs.wuyou.net/forum.php?mod=viewthread&tid=140951&extra=page%3D1

有两个缺点:

因为p代码简单,所以暂不支持other根目录下直接放置软件,另外,也不支持多级文件夹。。。

另外,由于是没有智能化判断可执行文件的主次,所以快捷连接中会添加存在的可执行文件,这样就造成了,只要添加的软件中有多个*.exe,就会有多个快捷链接。。

------------------

不知道楼主这些问题是怎么处理的。。

另外,reg和inf等文件也应该处理下,,这个更好些。。
作者: coolg    时间: 2009-4-20 18:13
标题: 回复 #11 mapeimapei 的帖子
外置程序问题,这些都是大家共同想法!谢谢大侠支持!
第一个问题,目前这个简单配置文件还难以实现智能化.
第二个问题好解决,加一句就行
另外,我只是菜菜一个,一点想法而已,重任还得靠大侠你们担当了,呵呵

[ 本帖最后由 coolg 于 2009-4-20 20:04 编辑 ]
作者: mapeimapei    时间: 2009-4-20 18:19
对,对,处理根目录下软件的问题,就是再for下。。是我把这个问题复杂化了。。

但是多级目录要做到分类明确就复杂了。。呵呵。。
作者: coolg    时间: 2009-4-20 18:24
标题: 回复 #13 mapeimapei 的帖子
程序目录下只要放几个分类目录就行了,支持多级目录(上传图片32.jpg就有说明,XP资源目录)

[ 本帖最后由 coolg 于 2009-4-20 18:31 编辑 ]
作者: coolg    时间: 2009-4-20 18:26
外置文件夹下主要有三个目录:桌面,快捷工具栏,程序
作者: yth_0    时间: 2009-4-20 20:02
不知道外置文件夹是必须放到PE所在盘还是可以放到任意盘里呢?
作者: coolg    时间: 2009-4-20 20:07
标题: 回复 #16 yth_0 的帖子
只要PECMD能LOAD到都行,不改变原来PE结构!无忧几位大大的PE,我都试了.

[ 本帖最后由 coolg 于 2009-4-20 20:09 编辑 ]
作者: 张建余    时间: 2009-4-20 21:04
标题: 回复 #17 coolg 的帖子
楼主能否详细说明一下使用方法?
谢谢!
作者: x.Nichdlas    时间: 2009-4-20 21:12
这个想法确实不错!期待更加完善 更多的应用
作者: coolg    时间: 2009-4-20 21:38
标题: 回复 #18 张建余 的帖子
请见15#
在原PE外置文件夹内新建三个文件夹(桌面,快捷工具栏,程序).
再在程序文件夹建分类文件夹,想链接到桌面的,就把程序丢到桌面文件夹内,以此类推..
作者: coolg    时间: 2009-4-20 21:45
如果怕麻烦,什么也不想动,小马开的话题里的,我还有一个配置文件,放到外置程序中,改个名称(**.ini),就行了,如果原PE的LOAD能力强的话,外置随便放在什么位置..
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=140951&extra=page%3D1

[ 本帖最后由 coolg 于 2009-4-20 21:46 编辑 ]
作者: 66369    时间: 2009-4-20 21:57
试玩了下.重大成果.回头就来支持.
作者: coolg    时间: 2009-4-20 22:04
标题: 回复 #22 66369 的帖子
呵呵,还是你们做得好,我只不过跟你们学习了!
作者: pseudo    时间: 2009-4-20 22:40
原帖由 coolg 于 2009-4-20 16:49 发表
PE的外置程序,一直是令人烦心一件事.想加想删,都要重新修改配置文件.根据老九的思路,
我写了一个配置文件,已达到外置程序想删就删,想加就加,我奉献出来,我是个菜菜,写得不好,想请老九等高手帮忙修改润色一下.盼 ...

像是抄我的:

           《零体积全能可扩展PE》圣诞版(2008.12.30)安装说明
-----------------------------------------------------------------------
+-------------+
| 1. 安装特色 |
+-------------+
    零体积PE体积小,有就地取材的能力,尤其适合安装到硬盘或U盘。安装特色:
------------------------------------------------------------------------
  - 一盘通用    :光盘版、U盘版、移动/本地硬盘版、PXE版都使用同一个ISO。
  - 目录清爽    :PE装完可以只有两个文件,一个grldr一个ISO,还可以隐藏。
  - 操作方便    :安装步骤少,好理解。装到硬盘无需安装工具。
  - 统一启动方式:首创ISO文件整体启动、解开启动、PXE启动三合一无缝衔接。
  - 文件部署灵活:可分散到多个(隐藏)分区,量产区可很小,不担心找外置。
------------------------------------------------------------------------
   
    诸多特色带来方便:
------------------------------------------------------------------------
  - 想删就删    :除了外围组件可删,连在其它PE中往往作为内核的东西,也做
                  了分解和外置化处理(包括硬盘控制器、一级、二级扩展等),
                  它们也都可删,最小可只剩2.2M单文件核心(及一个启动文件)。
  - 想加就加    :增加外置程序可不修改配置文件
  - 想放哪就放哪:可分散到多个(隐藏)分区,不担心找不到外置组件。

我是否抄了谁的记不清了:)

相关问题在一两年前以nn2nn开放式架构为标志已经讨论过,其成果在chenall的PE及0PE中有体现。
作者: zhaoshanhao    时间: 2009-4-20 23:03
很好,支持一下,也学习了
作者: coolg    时间: 2009-4-20 23:30
标题: 回复 #24 pseudo 的帖子
好文章,!!!!!!,
呵呵,我的配置文件是老九刚发布的56Mpe配置文件修改而来,nn2nn大大以及无忧大大的东东.确实要赞一个,哈哈...你体现和我实现不是同的,其实点破我的是老九和WLDNA大大.这些成果应归他们!

[ 本帖最后由 coolg 于 2009-4-20 23:54 编辑 ]
作者: 66369    时间: 2009-4-21 13:17
原帖由 pseudo 于 2009-4-20 22:40 发表

像是抄我的:

我是否抄了谁的记不清了:)

相关问题在一两年前以nn2nn开放式架构为标志已经讨论过,其成果在chenall的PE及0PE中有体现。





-------------

不象啊.也许LZ受到启发.

但LZ让这技术更简单化了.
作者: dgxhls    时间: 2009-4-21 13:20
技术在前进。
作者: 66369    时间: 2009-4-21 13:40
原帖由 dgxhls 于 2009-4-21 13:20 发表
技术在前进。





版主加亮鼓励.望LZ继续.....
作者: WLDNA    时间: 2009-4-21 13:52
原帖由 coolg 于 2009-4-20 23:30 发表
好文章,!!!!!!,
呵呵,我的配置文件是老九刚发布的56Mpe配置文件修改而来,nn2nn大大以及无忧大大的东东.确实要赞一个,哈哈...你体现和我实现不是同的,其实点破我的是老九和WLDNA大大.这些成果应归他们!


呵呵 写上老九就好了,我只是菜鸟一个!

你提出的这个问题,估计大部分做PE的都想过!

我也曾经有个设想,一直没时间细细研究,这里说来,做个参考吧


1. 在内核里面可以做一个搜索二级目录下INI文件的过程(PECMD未找到此功能,批处理偶实在是不会,而且觉得批处理的查找方式不是很完善)

2. 在外置目录里面的INI文件加上一个通用外置的标志,也就是一个 唯一的字符 也可以考虑UUID之类的!并且把外置加载分为两层,用Call命令实现,主要分为:
  1. 自己PE使用的功能(比如:修改用户名,开启FBWF等)
  2. 外置的快捷方式分为一个子过程,这个过程就是所谓的共用的啦,嘿嘿

基本就这些了,其他想到了再说

支持下楼主,这个想法挺不错的,要是能用一个简单的方法来实现,文件随意放就更好了,固定文件夹毕竟有点局限,呵呵
作者: yewuqiu    时间: 2009-4-21 13:55
不错
更方便了
这样以后就只更新内核就OK了
作者: songge    时间: 2009-4-21 13:55
pe在你们的手中越来越强大了,造福呀
作者: peacock    时间: 2009-4-21 14:08
不是太懂,慢慢研究下
作者: coolg    时间: 2009-4-21 14:15
标题: 回复 #30 WLDNA 的帖子
对楼上各位大大的支持和建设性的提议,深表谢意!!!说真的,微软是PE的发源地,无忧更是将PE发挥到极致,我也是无忧的一员,也应为无忧奉献,应小马大大的要求,才另开一贴,盼望大家齐心合力,把PE搞得更好,既无版权之分,何来抄袭之说.虽然还有一些新意,现在也不敢说了!!

[ 本帖最后由 coolg 于 2009-4-21 14:21 编辑 ]
作者: WLDNA    时间: 2009-4-21 14:23
原帖由 coolg 于 2009-4-21 14:15 发表
对楼上各位大大的支持和建设性的提议,深表谢意!!!说真的,微软是PE的发源地,无忧更是将PE发挥到极致,我也是无忧的一员,应小马大大的要求,才另开一贴,盼望大家齐心合力,把PE搞得更好,既无版权之分,何来抄袭之说.虽 ...


呵呵 关于P大的回复楼主不要太在意,在我看来他也只是说下,无所谓什么版权问题,呵呵

好东西就是要坚持下去的撒,支持你


个人还有个浅薄的认识,就是认为:现在这个外置的共用性需要一个规范,其他不说,如果你能把这个制定好,那对PE来说就是大功一件喽,(*^__^*) 嘻嘻……

[ 本帖最后由 WLDNA 于 2009-4-21 14:30 编辑 ]
作者: dvd008    时间: 2009-4-21 14:40
一点一点的突破,先提个问题,
外置程序目录,建若干子目录,每个子目录放一个 exe的软件,链接到快速启动栏
如何自动搜索子目录的exe,并链接到快速启动栏?
不搜索外置程序,而只搜索一级子目录的 exe文件。
作者: noskin    时间: 2009-4-21 15:42
真方便,还是无忧的高人多啊。谢谢大家。
作者: pseudo    时间: 2009-4-21 15:57
原帖由 coolg 于 2009-4-21 14:15 发表
对楼上各位大大的支持和建设性的提议,深表谢意!!!说真的,微软是PE的发源地,无忧更是将PE发挥到极致,我也是无忧的一员,也应为无忧奉献,应小马大大的要求,才另开一贴,盼望大家齐心合力,把PE搞得更好,既无版权之分 ...

呵呵,看到用词相似,开玩笑的说说,与版权、抄袭无关,我没看代码。

不过提醒大家注意,nn2nn两年前提出的开放架构意义重大(不限于wim格式文件),chenall大侠的PE是首个完整支持此架构的PE。
作者: mapeimapei    时间: 2009-4-21 17:03
大家多多关注下代码,看看哪块能够优化下,完善下,至于版权,坛子里边的高人是怎么做的??

在我看来,只要能够使PE人性化,智能化,标准化,版权是谁的无所谓的。。。
作者: 66369    时间: 2009-4-21 17:08
标题: 回复 #39 mapeimapei 的帖子
标准化很重要.你有资格给个....

因能做的大大.多.到时天下打乱.....不利于使用PE的人.
作者: blithewind    时间: 2009-4-22 00:55
很不错的构想。
继续努力呀,把它完善了
作者: clyaaa    时间: 2009-4-22 10:16
谢谢老大们的辛苦工作,让我等有称手的PE工具用
作者: fifaeric    时间: 2009-4-22 11:37
顶楼主,期待中~~~~~
作者: ck    时间: 2009-4-24 06:34
“送人玫瑰,手留余香”楼主发个示例PE上来。
作者: kingsz1    时间: 2009-4-24 07:28
标题: 谢谢无私分享
求教,楼主的 设置批处理 是保存在哪里?是什么文件名? 是 winpe.ini 吗?
作者: moonstat    时间: 2009-4-24 09:15
虽然不是很懂,还是强烈支持一下
作者: nn2nn    时间: 2009-4-25 11:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 66369    时间: 2009-4-25 11:44
"我"PE

两者都支持.有用户自己决定用 wimnt &  wimtool
作者: 潮退潮生    时间: 2009-4-25 18:47
不明白和petools有什么区别,petools不是早实现楼主要的功能吗?
作者: coolg    时间: 2009-4-25 21:40
经过几天的努力,配置文件已优化,并对多个PE测试成功.支持多种文件挂载(EXE,WIM,CMD,BAT)也做了个PE,正在上传,但纳米太慢,传好了,请大家帮忙测试,谢谢!应nn2nn大大的提议,文件包格式如图1,petools,配置文件也是winpe.ini,方便多PE合盘,共享外置程序.PE里只有少量软件,软件请大家自己加.

[ 本帖最后由 coolg 于 2009-4-26 09:29 编辑 ]

文件包格式.jpg (18.05 KB, 下载次数: 98)

文件包格式.jpg

Snap2.jpg (55.38 KB, 下载次数: 103)

Snap2.jpg

作者: clyaaa    时间: 2009-4-25 23:51
原帖由 coolg 于 2009-4-25 21:40 发表
经过几天的努力,配置文件已优化,并对多个PE测试成功.支持多种文件挂载(EXE,WIM,CMD,BAT)也做了个PE,正在上传,但纳米太慢,传好了,请大家帮忙测试,谢谢!应nn2nn大大的提议,文件包 ...



谢谢,下来试试看
作者: rstart    时间: 2009-4-26 00:03
单独把  ini 发上来吧。还有调用方法。 纳米最近太慢了。。下载根本没有速度...

[ 本帖最后由 rstart 于 2009-4-26 08:35 编辑 ]
作者: coolg    时间: 2009-4-26 10:08
原帖由 ck 于 2009-4-24 06:34 发表
“送人玫瑰,手留余香”楼主发个示例PE上来。


已上传了一个,请测试一下,并多提意见,谢谢!!
作者: rstart    时间: 2009-4-26 10:29
原帖由 coolg 于 2009-4-26 10:08 发表


已上传了一个,请测试一下,并多提意见,谢谢!!


下不动,没有下载速度,纳米, 能不能把你的那个 ini 文件单独发上来啊, 还有调用的方法说一下
作者: lxl1638    时间: 2009-4-26 17:16
本人也来一个让大家试试:
1、可以搜索所有的子目录
2、可以建立指定文件类型(如EXE、CMD、BAT、WIM等)的快捷方式
3、纯PECMD命令,没有调用CMD或第三方工具,高率快速
4、精简完善的代码见最后,搜索所有指定类型的文件用同一个子过程

////////////////////////////////////////////////////////////
//注释内容为下一行命令的功能

//去掉蓝色命令的注释后建立的快捷方式可不带扩展名
////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////
//建立快捷方式
_SUB CreateShortCut
  //取当前目录名(后面加了一个'\')的长度
  STRL iCurDir=%CurDir%\
  //取搜索的文件名的长度
  STRL iFile=%AnyFile%
  //取文件扩展名(不带".")
  //FEXT sExt=%AnyFile%
  //取文件扩展名长度(前面带有".")
  STRL iExt=.%sExt%
  //文件名长度减去当前目录名长度
  CALC #iShort=%iFile%-%iCurDir%
  //取相对于当前目录的文件名(即快捷方式名称,含扩展名)
  RSTR sShort=%AnyFile%,%iShort%
  //取相对文件基本名的长度(含相对路径,不带扩展名)
  //CALC #iShort=%iShort%-%iExt%
  //快捷方式名称(无扩展名)
  //LSTR sShort=%sShort%,%iShort%
  //建立快捷方式
  LINK %Programs%\外置程序\%sShort%,%AnyFile%
_END
////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////
//搜索所有的EXE文件
_SUB SearchEXE
  //搜索所有的EXE文件,并调用CreateShortCut建立快捷方式
  FORX %AnyPath%\*.EXE,AnyFile,0,CALL CreateShortCut
  //搜索所有的下级目录,并递归调用SearchEXE搜索所有的EXE文件
  FORX @%AnyPath%\*.*,AnyPath,0,CALL SearchEXE
_END
////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////
//搜索所有的CMD文件
_SUB SearchCMD
  //搜索所有的CMD文件,并调用CreateShortCut建立快捷方式
  FORX @%CurDir%\*.CMD,AnyFile,0,CALL CreateShortCut
  //搜索所有的下级目录,并递归调用SearchEXE搜索所有的CMD文件
  FORX @%CurDir%\*.*,AnyPath,0,CALL SearchCMD
_END
////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////
//搜索所有的BAT文件
_SUB SearchBAT
  //搜索所有的BAT文件,并调用CreateShortCut建立快捷方式
  FORX @%CurDir%\*.BAT,AnyFile,0,CALL CreateShortCut
  //搜索所有的下级目录,并递归调用SearchEXE搜索所有的BAT文件
  FORX @%CurDir%\*.*,AnyPath,0,CALL SearchBAT
_END
////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////
//搜索所有的WIM文件
_SUB SearchWIM
  //搜索所有的WIM文件,并调用CreateShortCut建立快捷方式
  FORX @%CurDir%\*.WIM,AnyFile,0,CALL CreateShortCut
  //搜索所有的下级目录,并递归调用SearchEXE搜索所有的WIM文件
  FORX @%CurDir%\*.*,AnyPath,0,CALL SearchWIM
_END
////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////
//主体执行流程
////////////////////////////////////////////////////////////
//搜索当前目录的所有子目录,并调用SearchEXE搜索其下的EXE文件
FORX @%CurDir%\*.*,AnyPath,0,CALL SearchEXE
//搜索当前目录的所有子目录,并调用SearchEXE搜索其下的CMD文件
//FORX @%CurDir%\*.*,AnyPath,0,CALL SearchCMD
//搜索当前目录的所有子目录,并调用SearchEXE搜索其下的BAT文件
//FORX @%CurDir%\*.*,AnyPath,0,CALL SearchBAT
//搜索当前目录的所有子目录,并调用SearchEXE搜索其下的WIM文件
//FORX @%CurDir%\*.*,AnyPath,0,CALL SearchWIM
////////////////////////////////////////////////////////////



以下是911外置及效果图









//精简完善的代码
/////////////////////////////////////////////////////////////////
//注释内容为下一行命令的功能

//去掉蓝色命令的注释后建立的快捷方式可不带扩展名
/////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////
//建立快捷方式
_SUB CreateShortCut
  //取当前目录名(后面加了一个'\')的长度
  STRL iCurDir=%CurDir%\
  //取搜索的文件名的长度
  STRL iFile=%AnyFile%
  //取文件扩展名(不带".")
  //FEXT sExt=%AnyFile%
  //取文件扩展名长度(前面带有".")
  STRL iExt=.%sExt%
  //文件名长度减去当前目录名长度
  CALC #iShort=%iFile%-%iCurDir%
  //取相对于当前目录的文件名(即快捷方式名称,含扩展名)
  RSTR sShort=%AnyFile%,%iShort%
  //取相对文件基本名的长度(含相对路径,不带扩展名)
  //CALC #iShort=%iShort%-%iExt%
  //快捷方式名称(无扩展名)
  //LSTR sShort=%sShort%,%iShort%
  //建立快捷方式
  LINK %Programs%\外置程序\%sShort%,%AnyFile%
_END
/////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////
//搜索所有指定类型的文件
_SUB SearchFile
  //搜索所有指定类型的文件,并调用CreateShortCut建立快捷方式
  FORX %AnyPath%\%FileType%,AnyFile,0,CALL CreateShortCut
  //搜索所有的下级目录,并递归调用SearchFile搜索所有指定类型的文件
  FORX @%AnyPath%\*.*,AnyPath,0,CALL SearchFile
_END
/////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////
//主体执行流程
/////////////////////////////////////////////////////////////////
//设置文件扩展名为"*.EXE"
ENVI FileType=*.EXE
//搜索当前目录的所有子目录,并调用SearchFile搜索其下指定类型的文件
FORX @%CurDir%\*.*,AnyPath,0,CALL SearchFile
//设置文件扩展名为"*.CMD"
ENVI FileType=*.CMD
//搜索当前目录的所有子目录,并调用SearchFile搜索其下指定类型的文件
FORX @%CurDir%\*.*,AnyPath,0,CALL SearchFile
//设置文件扩展名为"*.BAT"
ENVI FileType=*.BAT
//搜索当前目录的所有子目录,并调用SearchFile搜索其下指定类型的文件
FORX @%CurDir%\*.*,AnyPath,0,CALL SearchFile
//设置文件扩展名为"*.WIM"
ENVI FileType=*.WIM
//搜索当前目录的所有子目录,并调用SearchFile搜索其下指定类型的文件
FORX @%CurDir%\*.*,AnyPath,0,CALL SearchFile
/////////////////////////////////////////////////////////////////


[ 本帖最后由 lxl1638 于 2009-4-27 01:46 编辑 ]
作者: 66369    时间: 2009-4-26 17:22
标题: 回复 #55 lxl1638 的帖子
够强.来不及学啊.................
作者: WLDNA    时间: 2009-4-26 18:09
原帖由 lxl1638 于 2009-4-26 17:16 发表
本人也来一个试大家试试:
1、可以搜索所有的子目录
2、可以建立指定文件类型(如EXE、CMD、BAT、WIM等)的快捷方式
3、纯PECMD命令,没有调用CMD或第三方工具,高率快速


以下是911外置及效果图





原来这样  FORX @%CurDir%\*.*  还可以搜索子目录,学习了,O(∩_∩)O哈哈~
作者: lmle    时间: 2009-4-26 21:58
老九的这段程序真是好东西!已成功应用在“我心如水”的PE中。
这下删除、添加外置程序,特别是更新杀毒软件方便多了。
以往更新OP.WIM那个大家伙,总得花好长时间。
作者: chenall    时间: 2009-4-26 23:12
我记得在很早之前我就提出外置共用了,只是当时^_^呵呵,大部人的都说什么版权问题.具体贴子在哪也忘了.我还是建议无忧可以出一个PE外置程序的标准(版主们可以提倡和定制下标准),这样一来以后添加外置就像搭积木一样简单了.无论谁的PE都使用同样的标准.

思路不错,再给一些建议.有时一个程序目录可能会有多个EXE或CMD,BAT文件.

建议想办法弄个标志文件,让它使用指定的文件来创建快捷方式.

还需要有一个标志,表明这个目录里面的程序不需要创建快捷方式.

希望在5.1之前能有比较好的方案,准备加到我使用的PE里面去.
作者: lxl1638    时间: 2009-4-27 01:23
原帖由 chenall 于 2009-4-26 23:12 发表
我记得在很早之前我就提出外置共用了,只是当时^_^呵呵,大部人的都说什么版权问题.具体贴子在哪也忘了.我还是建议无忧可以出一个PE外置程序的标准(版主们可以提倡和定制下标准),这样一来以后添加外置就像搭积木一 ...

这个?不是人干的活啊。
作者: WLDNA    时间: 2009-4-27 08:25
标题: 回复 #59 chenall 的帖子
我想这个大部分人制作过PE的人都应该想过这个问题了,现在确实是需要一个统一的解决方案,最好大家都来说说意见,如果能理解的话,我来定这个标准!然后,大家在修改!

我现在有两个简单的想法:
      一,沿用现在的PETOOLS目录,采用新的快捷方式建立方法,上面老九大哥已经给出了脚本,很实用,很方便;只需在完善多程存在的问题即可!比如:分类存放的大多是单文件版,至于不是但文件版的,可考虑把主程序建成和他所在目录相同名字,这样也很方便;或者用ini文件来定义加载,启动,这样更灵活!

      二,自动搜索,所有的二级目录,查找包含link命令的ini配置文件,然后只使用里面的link行,这样也可以简单的实现外置共享,但是兼容性,和速度上,可能会有些影响!



第一个方法里面,可以考虑在每个不需要全部建立快捷方式的文件夹内,加上一个特定文件名的ini,例如:Init.ini 。先用判断,是否含有这个文件,凡是包含这个配置文件的文件夹,就加载ini中的特定设置。不包含此文件的文件夹,就按当前的开放结构建立快捷方式,或者,建立可执行文件的快捷方式:exe,wim,cmd,bat,……


另外,楼主的特殊文件夹快捷方式的方案,也不错,可以一起整合,这样更方便,希望大侠拍砖

[ 本帖最后由 WLDNA 于 2009-4-27 08:35 编辑 ]
作者: rstart    时间: 2009-4-27 09:22
  1. //`COOLG-YY/////////////////////////////////////////////////
  2. _SUB cre_dir
  3.   TEAM NAME SofName=%Promn%|FEXT PN=%Promn%
  4.   FIND $%pn%=EXE,%dk%!FIND $%pn%=WIM,%dk%
  5.   FIND $%pn%=CMD,%dk%!FIND $%pn%=BAT,%dk%
  6. _END
  7. _SUB Dk_link
  8. TEAM ENVI b1=LINK %Desktop%\%SofName%,%Promn%|ENVI b2=LINK %QuickLaunch%\%SofName%,%Promn%
  9. FIND $%todir%=桌面,%b1%!call Qk_link
  10. _END
  11. _SUB Qk_link
  12. FIND $%todir%=快捷工具栏,%b2%!call Pro_link
  13. _END
  14. _SUB Pro_link
  15. LINK %Programs%\%todir%\%SofName%,%Promn%
  16. _END
  17. _SUB spolink
  18. LINK %Programs%\%todir%\%dudir%\%SofName%,%Promn%
  19. _END
  20. _SUB Created_Menu
  21. FORX %CurDir%\%todir%\*.*,Promn,0,TEAM ENVI dk=CALL Dk_link|CALL cre_dir
  22. FORX @%CurDir%\%todir%\*,PBC,0,TEAM NAME dudir=%PBC%|CALL created_dudir
  23. _END
  24. _SUB created_dudir
  25. FORX %CurDir%\%todir%\%dudir%\*.*,Promn,0,team envi dk=call spolink|CALL cre_dir
  26. _END
  27. ENVI Programs=%USERPROFILE%\「开始」菜单\程序
  28. ENVI Desktop=%USERPROFILE%\桌面
  29. ENVI QuickLaunch=%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Quick Launch
  30. CALL $%CurDir%\WimShExt.DLL
  31. PATH %RamDisk%\WimProgram
  32. REGI HKCU\SOFTWARE\WimTool\AutoMountPath=%RamDisk%\WimProgram
  33. LINK %Desktop%\WimTool,%CurDir%\WimTool.EXE
  34. TEXT 创建外置程序快捷方式……#0x00FFC0 L20 T480 R720 B580 *
  35. FORX @%CurDir%\*,pab,0,TEAM NAME todir=%pab%|CALL Created_Menu
  36. LINK %Desktop%\加载外部配置,pecmd.exe,load \%CurDir%\winpe.ini,,shell32.dll#19
  37. WALL %CurDir%\WALLLOGO.JPG
  38. TEAM ENVI b1=|ENVI b2=
  39. //`桐城二中小也YY版//////////////////////////////////////////
复制代码


COOLG 的,我提取出来了,也不错的
作者: coolg    时间: 2009-4-27 15:28
在无忧这个大家庭里,让人感到温暖!我发这么烂帖子,竟受这么多大大的关注,提出许多宝贵的建议!
当时我在搞这个配置文件时,就各人的PE使用习惯,外置程序链接,不外乎三个地方:桌面,开始菜单和快捷工具栏,
加入两个特殊文件夹(桌面,快捷工具栏),就是想把复杂问题简单化.也方便菜菜们
我的配置文件迟迟不发,就是想抛砖引玉,果然九大大出手了,好高兴!!!
呵呵,我还要说:pecmd的命令,真的好强大,forx不输cmd的for命令!
最后还是要靠无忧大大们的努力,不断完善!
作者: secowu    时间: 2009-4-27 15:30
比如,将需要建立快捷方式的文件名添加个前缀?
PE_qq.exe
这个pe_就是识别用的前缀,不知会不会影响程序的运行
作者: secowu    时间: 2009-4-27 15:31
那个大块头的op.wim压缩来压缩去,真的很烦嘞
作者: secowu    时间: 2009-4-27 15:32
为了各依别人的爱好,可以在INI文件开头里,定义自己的前缀
再依这个变量进行查找就可以满足众人的口味了。
作者: coolg    时间: 2009-4-27 15:35
楼上这个建议好,程序执行时这个我想可能问题不大,搜索归搜索,链接时过滤一下就行了.
另外,我也提个建议,就是内核能完成的事,最好是内核内完成,让外置配置文件完成,可能有点费时间.

[ 本帖最后由 coolg 于 2009-4-27 15:46 编辑 ]
作者: secowu    时间: 2009-4-27 15:38
希望水老头更新PE时,使用这种架构的外置了
作者: secowu    时间: 2009-4-27 15:40
不过,怎么说来,修改程序的文件名总感觉不是好办法,楼楼上的说的在目录下加个ini来读取是个好办法。只是速度上不知可行否
作者: coolg    时间: 2009-4-27 15:51
原帖由 secowu 于 2009-4-27 15:40 发表
不过,怎么说来,修改程序的文件名总感觉不是好办法,楼楼上的说的在目录下加个ini来读取是个好办法。只是速度上不知可行否

只要定下一个统一的标识,链接问题不大,搜索目录下ini,可能有点影响速度.
作者: hhh333    时间: 2009-4-27 16:58
原帖由 WLDNA 于 2009-4-27 08:25 发表
我想这个大部分人制作过PE的人都应该想过这个问题了,现在确实是需要一个统一的解决方案,最好大家都来说说意见,如果能理解的话,我来定这个标准!然后,大家在修改!

我现在有两个简单的想法:
      一, ...


我也来说一说:
1、要我同意你们的这种做法的话,我同意第一个方案,主程序与其目录同名,搜索时可以先找完全同名的,没有时再找部分同名的,实在没有就找出所有的。这样做出的快捷方式应该有90%会符合我们的预期。用INI文件来指定,虽然也不错,但与重编WIM文件没什么不同。

2、老实说我不太同意搜索建快捷方式的方法,理由如下:
①这种方式究竟是给别人用的还是给自己用的?如果是给自己用的,我就应该知道这个程序的作用和主程序是什么,如果临时用一下,直接在程序原来的位置运行不就行了?如果以后总是要用到的,将之做到WIM中不是更好吗?如果是给别人用的就更应该打成WIM包了,你总不能将一个7z或RAR文件发布给别人,叫他使用时再解到某个地方等等……
②老实说这种探索出来的快捷方式没有什么说明的,直接就是文件名,而现在的软件的主程序95%是用的英文名,找一个工具眼睛都看花了,还不如直接去文件夹中找文件,特别是将所有的子目录中的可执行文件都搜出来,稍微复杂一点的软件就更不得了,一大堆的快捷方式……。
③病毒控制的问题。肯定是没有WIM包那么安全的。
④搜索的时间开销问题。
⑤放置目录名统一的问题。***也没下文,究竟取个什么目录名……
⑥搜索的级别问题。显然,搜索所有子目录是不合适的,究竟应该搜索到第二级还是第三级合适?

……我觉得还有很多问题……

结论:大家不必浪费精力了!

我觉得目前合适的方案是:外置以WIM为主,以开放式构架的PETOOLS目录作为补充(不搜索快捷方式而是直接以desktop.ini文件来实现菜单的)
作者: chenall    时间: 2009-4-27 17:08
原帖由 secowu 于 2009-4-27 15:40 发表
不过,怎么说来,修改程序的文件名总感觉不是好办法,楼楼上的说的在目录下加个ini来读取是个好办法。只是速度上不知可行否


使用INI的方式我的PE里面就已经在使用了.速度是比较慢.
程序目录下的UserLoad.cmd就是自动加载各个目录下的INI文件的.后台执行,所以可能进入PE以后开始菜单上的快捷方式还没有全部出来.
作者: lxl1638    时间: 2009-4-27 17:43
本人也来说两句。
给外置程序建立快捷方式,以往是一个程序使用一条LINK命令,增减或改动程序时就要一条一条地修改LINK命令,这帖(还有另一个主题)提出了"想删就删,想加就加",自动给外置程序建立快捷方式的方法,标准是很难统一的,各人爱好不同啊,这是其一。
其二,自动建立快捷方式,关键是要让别人看到快捷方式的名称,就能知道这个快捷方式的功能和用途,建议外置程序中的目录名和程序名尽可能中文名,个别不能使用中文名的就用英文名。这样别人看到快捷方式的名称就明白它的用途了。
其三,本人所用的方法对于EXE、WIM(若注册了WimTool)文件,快捷方式上都可以显示文件的图标,对于CMD、BAT文件就无法定制图标了,这是一个不足。
本人所给出的INI无非是想:不用去理会外置程序有什么程序,只要你丢程序进去,都能自动建立对应的快捷方式,去掉了一条一条地写LINK命令的麻烦。
作者: lxl1638    时间: 2009-4-27 17:44
原帖由 chenall 于 2009-4-27 17:08 发表
使用INI的方式我的PE里面就已经在使用了.速度是比较慢.

INI也是可以放到后台执行的。
作者: secowu    时间: 2009-4-27 18:34
一条条link是麻烦,但如何做到软件分类呢
作者: chenall    时间: 2009-4-27 19:18
或许可以根据目录名来创建快捷方式.
参考.
如果这个目录下面有EXE,BAT,CMD,WIM文件就使用这个目录名作为快捷方式名称(不再找下一级目录).如果没有就作为一个分类继续搜索下一级.

快捷方式指向,优先级WIM>CMD>BAT>EXE.(查找目录下所有的WIM,CMD,BAT,EXE文件).
图标使用快捷方式目标同名的.ICO文件或.EXE文件,如果没有就默认自身,优先级同名.ICO>同名.EXE

由于一般使用PECMD来编写脚本,所以还可以再加一个特权.
如果这个目录下有指定的PECMD脚本文件就直接执行这个脚本文件,并且不再找下一级目录.

[ 本帖最后由 chenall 于 2009-4-27 19:21 编辑 ]
作者: rstart    时间: 2009-4-27 19:45
原帖由 secowu 于 2009-4-27 18:34 发表
一条条link是麻烦,但如何做到软件分类呢


软件分类现在用到的也就下图中文名目录的那些吧。。应该分类不是问题。

2009-4-27 19-58-59.jpg (26.27 KB, 下载次数: 75)

2009-4-27 19-58-59.jpg

作者: hhh333    时间: 2009-4-27 20:10
原帖由 chenall 于 2009-4-27 19:18 发表
或许可以根据目录名来创建快捷方式.
参考.
如果这个目录下面有EXE,BAT,CMD,WIM文件就使用这个目录名作为快捷方式名称(不再找下一级目录).如果没有就作为一个分类继续搜索下一级.

快捷方式指向,优先级WIM>C ...


是一个比较好的解决办法!
作者: secowu    时间: 2009-4-28 08:18
这帖子掉得好快。。
作者: xiaolongkun0    时间: 2009-4-28 09:45
使用中文目录想法是不错,不过有些软件是不可以使用中文目录的,这是其中一个局限性。
作者: WLDNA    时间: 2009-4-28 10:57
我说个想法,就是在现有的PETOOLS的开放结构的基础上,添加,可随意放置文件夹,及非但文件版软件,并按楼主的想法,添加固定文件夹:例如桌面,快捷启动,等等!可方便用户自行管理,不知大家意见如何?呵呵
作者: 潮退潮生    时间: 2009-4-28 12:42
PETOOLS的功能是很强的,楼主的要求基本都能实现。多级目录也支持,WIM、CMD、EXE等也都支持,真不明白各位忙活的有什么先进,桌面一大片图标我不喜欢,我自己的系统也就只在桌面留几个图标。快速启动对PE来说也没什么意义,默认只有三个。一般都是在程序里调用。金手指的音速启动办法我倒是很看好,就是不能防毒。大家这样的方案也只能用在1.0或1.5中,2.0以上的PE根本就用不上。谈不上共享外置。理想的办法是要和3.0共享外置,不过问题多多,真希望有高手能出手下解决这个问题。目前1.0的还是用PETOOLS就行了。
作者: HY    时间: 2009-4-28 13:46
原帖由 xiaolongkun0 于 2009-4-28 09:45 发表
使用中文目录想法是不错,不过有些软件是不可以使用中文目录的,这是其中一个局限性。

不能用中文名的就用英文名,不能用英文名的软件是少数(可以加个说明),相信大家都知道.
作者: nn2nn    时间: 2009-4-28 14:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: zqjiang    时间: 2009-4-28 16:33
不错的方法  希望高手yy个 更 好的
作者: lxl1638    时间: 2009-4-28 17:05
原帖由 nn2nn 于 2009-4-28 14:38 发表

高,实在是高,PECMD也可以递归调用.


在高级语言中实现递归是很容易的事,但在PECMD这类脚本中实现递归写起来有点麻烦,这个FORX命令的文本源码有80K之大。
作者: secowu    时间: 2009-4-28 17:06
标准还没有个方案出来,供大家投票选择,
作者: hwh132    时间: 2009-4-29 08:28
coolg 大侠,我在你的基础上修改了一下,不知对不对,请指导:

[ 本帖最后由 hwh132 于 2009-4-29 17:15 编辑 ]

随加随删软件.rar

2.7 KB, 下载次数: 98, 下载积分: 无忧币 -2


作者: coolg    时间: 2009-4-29 11:18
标题: 回复 #88 hwh132 的帖子
呵呵,整得好,赞一个!又有新进展!
我有个提议:
1.最好Y老九的,代码更精练.
2.程序文件夹最好不要有限制,让大家随意放置,自由度更高.
以上建议,不知妥否?希望你继续努力,呵呵,引用水哥一句话:造福无忧!
另外说一声:大侠不敢当.

[ 本帖最后由 coolg 于 2009-4-29 11:20 编辑 ]
作者: hwh132    时间: 2009-4-29 13:33
原帖由 coolg 于 2009-4-29 11:18 发表
呵呵,整得好,赞一个!又有新进展!
我有个提议:
1.最好Y老九的,代码更精练.
2.程序文件夹最好不要有限制,让大家随意放置,自由度更高.
以上建议,不知妥否?希望你继续努力,呵呵,引用水哥一句话:造福无忧!
另外 ...





coolg大侠,太谦虚了。

关于“2.程序文件夹最好不要有限制,让大家随意放置,自由度更高.”的问题,只要是下面语句更改后就可以了:

FDRV CurPath=%CurDir%\WINPE.INI
`LINK !%Desktop%\启用随加随删软件,%CurPath%\随加随删软件\setup.cmd,,shell32.dll#24
LINK %Desktop%\启用随加随删软件,PECMD.EXE,LOAD %CurPath%\随加随删软件\Main.ini,shell32.dll#24




只要将 “%CurPath%\xx\随加随删软件\” 路径更改后即可。

[ 本帖最后由 hwh132 于 2009-4-29 17:17 编辑 ]
作者: lisong    时间: 2009-4-29 14:47
技术太高了,好好学习一番!
作者: coolg    时间: 2009-4-29 16:02
标题: 回复 #90 hwh132 的帖子
这样最好,恭贺一下,呵呵

抄袭老九的代码,也新y了一个,自由度更高一点.

[ 本帖最后由 coolg 于 2009-4-29 16:06 编辑 ]

不想挂载的.jpg (90.38 KB, 下载次数: 117)

不想挂载的.jpg

不想挂载的文件.jpg (72.54 KB, 下载次数: 118)

不想挂载的文件.jpg

想有下级目录.jpg (94.21 KB, 下载次数: 102)

想有下级目录.jpg

不想有下级目录.jpg (95.23 KB, 下载次数: 97)

不想有下级目录.jpg

想加的软件.jpg (95.81 KB, 下载次数: 90)

想加的软件.jpg

随意分类的目录.jpg (103.53 KB, 下载次数: 99)

随意分类的目录.jpg

多级目录.JPG (106.78 KB, 下载次数: 108)

多级目录.JPG

作者: 小天才    时间: 2009-4-29 16:17
不用这么复杂吧?我只要一个桌面和程序文件夹就够了,呵呵

对了,只有搜索子目录下的,而不能搜索本目录下的文件吗?
作者: coolg    时间: 2009-4-29 16:24
没问题,加一句就行了
FORX %CurDir%\*.*,AnyFile,0,CALL CreateShortCut
作者: hwh132    时间: 2009-4-29 17:19
coolg大侠,新Y的软件也上传共享下,让我们也学习下。谢谢!
作者: 小天才    时间: 2009-4-30 09:09
原帖由 coolg 于 2009-4-29 16:24 发表
没问题,加一句就行了
FORX %CurDir%\*.*,AnyFile,0,CALL CreateShortCut



这样不是全盘搜索了?太浪费时间了
作者: 绿宇星    时间: 2009-4-30 09:22
转转看看学学,。。。。。。
作者: 小天才    时间: 2009-4-30 10:11
使用55楼老九的代码后,发现如下图的错误提示!!不知怎么回事?

1.jpg (21.13 KB, 下载次数: 106)

1.jpg

2.jpg (21.51 KB, 下载次数: 111)

2.jpg

3.jpg (21.28 KB, 下载次数: 102)

3.jpg

作者: 天使的魔翼    时间: 2009-4-30 10:12
我能提个不成熟的想法吗??
1、有那位高人,编写一个短小而精练的配置自动判断执行程序;
2、是否能在进入配置前加载一下自动判断的程序,让程序可以自由配置加载的WTM?
3、这些想法我也是从布署安装操作系统时,曾经出现过的一些优秀软件而联想到的,不可取之处,请各位见笑了。
作者: songge    时间: 2009-4-30 10:12
搞好了就出一个此类比较完善的PE让大家感觉一下呀,测试的真是下了删删了下,急呀

[ 本帖最后由 songge 于 2009-4-30 10:14 编辑 ]




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