fish2006 发表于 2016-2-26 10:14:44

【2016.3.22 补充应用实例】Sh.exe 新版功能探讨和应用【附全系列更新系统下载】

本帖最后由 fish2006 于 2018-11-17 15:31 编辑

Sh.exe 新版功能探讨和应用【附全系列更新系统下载】 2016.2.26

Sh.exe 的整体功能和使用方法见下面链接,本帖主要探讨Sh.exe 2016.02.07 新版的一些内容,并对以前没有发现或提到的一些功能重新明确一下,以便于更好地认识和使用 Sh.exe。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=318727&extra=&page=1

一。再谈 ShCache.idx --- 因为有了新的认识和看法

1。在应用程序根目录下手工运行 ShCache.exe ,将会自动生成当前目录及其子目录下所有应用程序配置文件 *.shl 的索引文件ShCache.idx。也就是说 ShCache.exe 有合并 *.shl 文件的功能。
2。如果在应用程序搜索路径内没有 ShCache.idx 文件,则 Sh.exe 执行过程中将自动完成应用程序配置文件 *.shl 中的信息(执行结果不会生成 ShCache.idx 文件),这种情况下可能比直接读取 ShCache.idx 文件花费更多的时间 。也就是说ShCache.idx 文件不是 Sh.exe 运行必须的,而应用程序配置文件 *.shl 才是最基本的。
3。上述两个结果告诉我们,我们的注意力不应该放在直接编写和修改 ShCache.idx 这个文件上面,而应该放在编写和修改每个应用程序配置文件 *.shl 上面,因为这是更基本的和根本的,有了每个应用程序配置文件 *.shl,就可运行 ShCache.exe 瞬间自动生成 ShCache.idx 文件,而这样程序形成的文件比我们手工形成的规范的多,出错机会也更少。这次重新审核 *.shl 文件,发现不少语法上错误内容,主要原因就是因为过去主要用手工直接修改 ShCache.idx 文件,而没有同时修改 *.shl 文件,结果出现了 ShCache.idx 内容和 *.shl 内容不一致的现象。

二。Sh.ini 中搜索路径可以有多个目录,目录之间用分号“;”分割
如:Path=PePrograms;PeTools

在过去的应用中,32位系统和64位系统外置程序是分开存放的,如:32位系统外置目录是“DYY8\81PE”,而64位系统外置目录是“W81X\81PeProg”,而这两个目录内很多文件是重复出现的,如绝大部分小的工具软件,而 Office、QQ、Skype、ACRONIS 等都是体积大的重复文件,严重地浪费了磁盘空间,尤其在容量较小的U盘环境下更觉得是一个问题,如何避免一个文件重复存放在两个不同目录内?利用Sh.ini 中搜索路径可以有多个目录这个功能,就可以解决这个问题,一种可行方案如下:
1。在32位系统和64位系统下完全相同的应用程序归为一类 Prog_cmn,放在 Prog_cmn 目录内,即此目录内程序是32位系统和64位系统共用的。
2。在32位系统专用的应用程序归为一类 Prog_x32 (这些程序一般是有对应的64位版本),放在 Prog_x32 目录内。
3。在64位系统专用的应用程序归为 Prog_x64,放在 Prog_x64 目录内。

下面只要修改 Sh.ini 中搜索路径就可:
32位系统 Sh.ini 中搜索路径:Path=Prog_cmn;Prog_x32
64位系统 Sh.ini 中搜索路径:Path=Prog_cmn;Prog_x64

三。 新功能及其应用 --- Sh.exe 2016.02.07新版增加的功能

下面是应用程序配置文件 *.shl 中 这个组(段)的俄文原版说明和 Google翻译的 俄-中 对照说明。

1。 原文语法和说明:


;Проверка на совместимость , если условия не выполнены, link файл будет проигнорирован.
;совместимые версии, если ключ пустой или отсутствует, проверка игнорируется.
;兼容性检查,如果条件不具备,链接文件将被忽略。
;兼容的版本,如果键为空或丢失,验证被忽略。
OSArch=X86,IA64,X64
OSVersion=WIN_81,WIN_8, WIN_7,WIN_VISTA,WIN_XP,WIN_XPe,WIN_2012R2,WIN_2012,WIN_2008R2,WIN_2008,WIN_2003,WIN_10
;Наличие файла или каталога , если ключ пустой или отсутствует, проверка игнорируется.
;一个文件或目录的存在,如果该键是空的或丢失,验证将被忽略。
TagFile=\demo.exe

由于是机器翻译,加上软件功能本身很难用几个字可以说透,上述内容看了之后只能说似懂非懂。我想即使你懂得俄语,也不一定说清楚这个功能是做什么用的,具体如何使用,我在下面的说明只涉及其中一条:OSArch=X86,IA64,X64,是经过自己的实践得出的结论。

2。OSArch=X86,IA64,X64 的具体应用 ---32位和64位应用程序合并在一个目录中

这个组(段)要放在应用程序配置文件 *.shl 的首部,整体来说其功能是进行“兼容性检查”,如果满足规定条件(或要求),则本应用程序的配置内容执行下去;如果不满足,则退出本应用程序的配置要求,即不执行本应用程序的配置内容。OSArch 是 OS Architecture(操作系统架构)的缩写,X86,IA64,X64 是用来区分 32位系统和64位系统的,OSArch=X86 表示在 32位系统下执行本应用程序的配置内容(而在64位系统下不执行本应用程序的配置内容),而 OSArch=IA64,X64 表示在 64位系统下执行本应用程序的配置内容(而在32位系统下不执行本应用程序的配置内容),利用这个功能就可以非常方便地处理上面叙述过的32位和64位应用程序问题,上面叙述中采用了三个目录,而现在只用一个目录就可统一处理32位和64位应用程序了。具体方案说明如下:
A。首先对应用程序进行分类还是需要的,如与上述内容相同,分成三类:Prog_cmn,Prog_x32,Prog_x64。
B。Prog_cmn 类是 32位系统和64位系统共用的,其配置文件 *.shl 不需要修改和变化。
C。Prog_x32 类是 32位系统专用的,在其配置文件 *.shl 的开始部分补充如下内容,检查操作系统架构,只让 32位系统执行:
   
      OSArch=X86
D。Prog_x64 类是 64位系统专用的,在其配置文件 *.shl 的开始部分补充如下内容,检查操作系统架构,只让 64位系统执行:
   
      OSArch=IA64,X64

利用这个方法重新处理外置程序,32位系统和64位系统使用同一个搜索目录(在作者的应用程序中统一采用 PePrograms 这个目录名称),当然在一些具体的应用程序的处理上根据具体情况采取不同的处理方法,不能采取同一模式,有兴趣的网友自己分析和研究,作者不在本贴详述这些内容,相信有些处理方式会对你有启发的。修改后的外置程序和典型系统现予以发布,欢迎下载、测试和使用。

【全系列更新系统下载】

下载地址:http://pan.baidu.com/s/1c8MF4E
提取密码:qzbe
目录名称:SH新版-审核

下载链接:http://pan.baidu.com/s/1qYSo4A4   (此链接已失效)
目录名称:SH新版-外置+系统
提取密码:esqf

2016.9.26 注明:上述下载目录在百度网盘上系统显示“(审核未通过)”字样,并且分享链接失效,对新版 Sh.exe 及其对应的系统和外置程序请移步到下面的链接去下载:

下载地址:http://pan.baidu.com/s/1b34b5G   (此链接已失效)

目录名称:SH新版-审核
提取密码:cxt9

2016.3.4 补充上传新的驱动程序:DriverPacks(x86+x64)_2015.7z
最近从俄国人 Win10PE 中提取的 32位+64位驱动程序,比 PePrograms.7z 压缩包内容更新、更丰富,解压后可直接替换原压缩包内容。

附注:
A。本系统主要对象是同时使用(收藏)32位和64位系统的用户,对那些只使用(收藏)32位或64位系统的用户是没有优势的。
B。如果你是硬盘上使用系统,并且你的硬盘是以 TB来计量的,对几百兆硬盘空间的浪费没有任何想法,则可以掠过上面提供的分享。

================================================================================

2016.3.22 补充“SH新版及其应用技巧” --- SH在本地化和个性化方面的应用

PE作者通过网络对外发布的一般都是公用和普遍使用的内容,那些带有私人信息和个别用户使用的不宜放在系统文件内并在网上发布,但这些东西对具体的个人和特定的环境而言又非常需要和实用的,比如个人使用的收藏夹、自己喜欢和熟悉的输入法等,本次内容就介绍如何利用SH的功能通过外置程序方式实现这些任务(通过外置程序方式实现的根本优点是不必修改系统核心文件,不同的人,在不同的设备上根据具体情况采用针对性的方法),这些方法都是作者亲身经历过的和正在使用的方法,均通过实践证明是可靠、有效的。

1。通过外置程序方式设置个人收藏夹方法
过去收藏夹是直接集成在系统WIM文件的“用户”文件夹内,在发布系统时先删除个人信息后再打包、上传,比较麻烦;现在采用系统启动时动态地从硬盘拷贝文件的方法,与系统核心文件完全脱离关系,不再经历以前的麻烦了。

A。先建立一个拷贝文件的批处理命令文件:【copy-Favorites.cmd】内容如下:

copy D:\"My Documents"\bookmarks.adr %userprofile%\AppData\Roaming\Opera\Opera\
xcopy D:\"My Documents"\Favorites\*.*/s /y %userprofile%\Favorites\

第一行 copy 命令是从 D: 盘拷贝 Opera 收藏夹到 X: 盘(bookmarks.adr 是自己使用的 Opera收藏文件名)。
第二行 xcopy 命令是从 D: 盘拷贝 IE 收藏夹到 X: 盘(Favorites 文件夹是自己使用的 IE 收藏夹)。

B。创建一个新的应用程序配置文件或在某个应用程序的配置文件中,自动运行上面 A。中创建的批处理命令文件。
我是在 AUTORUNS.SHL 这个应用程序的配置文件中调用的(将 copy-Favorites.cmd 文件放在 \PePrograms\AUTORUNS\目录下),

在【AUTORUNS.SHL】的 这个段里补充如下内容。


hide=Yes
exe=\copy-Favorites.cmd
bat=\
reg=\

2。通过外置程序方式安装搜狗输入法
搜狗输入法在Win10PE下能够顺利地安装和使用,如果对微软的拼音输入法不太满意,可通过外置程序方式安装搜狗输入法,在本人发布的几个 Win10PE 下均测试通过(含32位和64位系统),使用的版本是:6.2.0.7817 , 程序安装文件 【Sogo.exe】大小为:11.2MB。

A。安装搜狗输入法命令 【Sogo.cmd】 文件内容:
      start Sogo.exe /sp- /verysilent

B。程序配置文件 Sogo.shl 文件内容:

...... 此段省略

hide=Yes
exe=\Sogo.cmd
bat=
reg=

3。通过外置程序方式安装设备驱动
我的笔记本上有摄像头和SD卡读卡器,过去有些系统里曾集成过这两个驱动,现在改为外置程序方式安装,具体方法如下:

A。PePrograms 目录下创建 MyDrv 子目录,在其下面再创建 x86 和 x64 两个子目录,分别存放 32位和 64位系统驱动程序。
再在每个系统的 Camera 子目录下存放摄像头驱动文件,而在 SDCard 子目录下存放SD卡读卡器驱动文件,目录结构如下:
\PePrograms\MyDrv\x86\Camera
\PePrograms\MyDrv\x86\SDCard

\PePrograms\MyDrv\x64\Camera
\PePrograms\MyDrv\x64\SDCard

下面仅以 32位系统做说明,64位系统与此雷同。
B。在 x86 子目录内创建 mydrv_x86.ini 和 mydrv_x86.shl 两个文件,具体内容如下:

【mydrv_x86.ini】文件内容(此文件将由 PECMD.EXE 装入执行):
DEVI.\Camera\oem1.inf
DEVI.\SDCard\oem2.inf

第一行 oem1.inf 是摄像头驱动安装文件。
第二行 oem2.inf 是 SD卡读卡器驱动安装文件。
(如果需要安装其他驱动程序,再加相应的目录和 .inf 安装语句就可,需要说明的是,事先应该手工方式确认 .inf 文件来安装驱动成功)。

C。应用程序配置文件中需要 SH新版功能 ,用来区别32位和64位系统。

【mydrv_x86.shl】文件内容(应用程序配置文件,SH运行时自动安装给定的设备驱动):

OSArch=X86

...... 此段省略

hide=Yes
exe=%WinDir%\System32\PECMD.EXE load .\mydrv_x86.ini
bat=
reg=



fish2006 发表于 2016-2-26 10:16:02

本帖最后由 fish2006 于 2016-3-21 12:17 编辑

分享目录“SH新版-外置+系统”介绍

本目录包含新版 SH.EXE(2016.2.7版) 以及 用此版本重新修改的外置程序和本人历次发布系统的最近修改文件。 以下系统如果没有特殊说明,均含 DISM 组件,且版本升级为 10586。

1。Sh_2016_02_07.7z
SH.EXE(2016.2.7版),内含Google翻译的 俄-中 对照说明。
---------------

2。PePrograms.7z
文件大小:456MB
文件说明:重新编写配置文件的外置程序,可被新版SH正确处理(在 PePrograms 一个目录内含32位+64位程序,最好放在可写介质上)。
特殊说明:
A。"屏幕分辨率"配置为启动时自动调整到最高分辨率,若在你的系统下工作不正常,则可取消自动运行或改为手动运行。
B。开机设置有声音提示,如果不喜欢响声,则取消“Sound”目录和配置内容,当然在精简版环境下没有声音支持,因此即使设置了也听不到声音。
C。在精简版环境下,由于精简了系统里的一些常规组件,因此有些外置程序(主要是多媒体软件和与IE组件有关的软件)无法运行是正常现象,如果需要更好的软件兼容性,则请选择多功能版。
---------------

对32位俄文版DIY系统:参见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=318727&extra=&page=1

3。DYY8.noDISM.wim
文件大小:265MB
文件说明:RAMOS,多功能版。
                  不含 DISM 组件,WimTool 运行占空间少,操作速度快,效率高。
                  虽然没有DISM 组件,但通过 DISM++工具也可对正常系统和VHD系统进行处理,而在不含 DISM 组件的系统环境下,现有DISM++工具不能处理 WIM映像系统。

4。DYY8.wim
文件大小:279MB
文件说明:RAMOS,多功能版。
---------------

对64位俄文版DIY系统:参见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=326690

5。W81x64.wim
文件大小:376MB
文件说明:RAMOS,多功能版。
---------------

对coolgWin81纯净版DIY系统:参见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=361108

6。coolg81Up1x86.wim
文件大小:401MB
文件说明:RAMOS,多功能版。

7。coolg81Up3x64.wim
文件大小:527MB
文件说明:RAMOS,多功能版。
---------------

Win10240PE 多功能版:参见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=364304

8。Win10240PE32.wim
文件大小:324MB
文件说明:WinPE,多功能版。

9。Win10240PE64.wim
文件大小:504MB
文件说明:WinPE,多功能版。
---------------

Win10586PE 精简版:参见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=373268

10。Win10586PE32精简版.wim
文件大小:191MB
文件说明:WinPE,精简版。

11。Win10586PE64精简版.wim
文件大小:284MB
文件说明:WinPE,精简版。
---------------

12。DriverPacks(x86+x64)_2015.7z
文件大小:253MB
文件说明:最近从俄国人 Win10PE 中提取的 32位+64位驱动程序,比 PePrograms.7z 压缩包内容更新、更丰富,解压后可直接替换原压缩包内容。

俄国人Win10PE 链接地址:http://usbtor.ru/viewtopic.php?t=618
---------------

Win10586PE 有声版:参见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=373268

13。Win10586PE32有声版.wim
文件大小:249MB
文件说明:WinPE,有声版。

14。Win10586PE64有声版.wim
文件大小:370MB
文件说明:WinPE,有声版。
---------------




fish2006 发表于 2016-2-26 10:18:26

外置程序目录“PePrograms”目录列表

ACRONIS (有32位和64位不同驱动文件)
AIDA64
AUTORUNS
BC4
BC4_x64
BCDTOOL
DataRecoveryWizardPro5.5.1
DEFRAGGLER
DiskGeniusPro (有32位和64位两个版本)
DRIVERPACKS (有32位和64位两个版本)
DRIVEXP
ExtraChm
HDTUNEPRO
ImgBurn
MPC-BE
MPC-BE_x64
Office2007 (有32位和64位不同内容的安装文件)
ProcessMonitor
QQ6.9
RegFromApp (有32位和64位两个版本)
RegistryManager
RegistryManager_x64
RegSnap
RegWorkshop (有32位和64位两个版本)
ResourceHacker
Skype
Sound
Sumatra-PDF (有32位和64位两个版本)
UltraISO
Victoria
WinHEX
WINNTSETUP (内含多个工具软件,有些有32位和64位两个版本)
WINSNAP

chiannet 发表于 2016-2-26 11:46:07

为什么不用PECMD??

PECMD 2012 帅到没朋友?

苏州本是 发表于 2016-2-26 11:51:35

好东西!已收藏到自己的百度盘。谢谢分享!

dfswb 发表于 2016-2-26 17:17:20

好东西,怎么没人跟帖?

wynew8au 发表于 2016-2-26 18:43:28

研究的不错,越来越好用了。

ddsony 发表于 2016-2-26 19:01:16

chiannet 发表于 2016-2-26 11:46
为什么不用PECMD??

PECMD 2012 帅到没朋友?

在加载外置方面,sh.exe确实要比pecmd方便许多。
但渔大pe中pecmd也不是没有用武之地,挂载隐藏分区,从而使SH加载外置就用得着。

chiannet 发表于 2016-2-26 19:26:47

ddsony 发表于 2016-2-26 19:01
在加载外置方面,sh.exe确实要比pecmd方便许多。
但渔大pe中pecmd也不是没有用武之地,挂载隐藏分区,从 ...

在加载外置方面,sh.exe确实要比pecmd方便许多

恕某驽钝,没看出来。

fish2006 发表于 2016-2-26 20:37:26

chiannet 发表于 2016-2-26 11:46
为什么不用PECMD??

PECMD 2012 帅到没朋友?

主要原因是本人不熟悉,本人一直是当伸手党的,没有自己开发过PE,因此基本没有使用过 PECMD,自然不熟悉了,后来使用中发现,用 PECMD 处理外置程序语法规则太晦涩难写,差一个标点符号都不行,主要精力都集中在记住和遵守这些语法规则上,不利于人们把主要精力放在解决问题的本质方面。在这种状态下看到了 SH.EXE处理外置程序的独特的方法,理解和使用起来容易得多,就决定采用 SH.EXE 来处理外置程序。
至于说“帅到没朋友”这个不太符合实际,我在自己开发的 PE里也是用 PECMD 来处理系统设置和初始化等事宜的,我心里很敬佩PECMD作者的不懈努力和开创精神的,PECMD 和她的作者都是我在无忧论坛上的朋友。

页: [1] 2 3 4 5 6 7
查看完整版本: 【2016.3.22 补充应用实例】Sh.exe 新版功能探讨和应用【附全系列更新系统下载】