无忧启动论坛

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

【原创】TXTSETUP.SIF减肥和检查错误批处理TSLite V0.9(4月29日更新)

[复制链接]
61#
发表于 2010-3-23 23:42:06 | 只看该作者
一点都不懂 TXTSETUP.SIF ,有一点疑问,如果同一个hwid被指定了2个或以上的驱动,会不会是当某个驱动安装不成功时自动加载另一个驱动?如果不是,该如何判断要去掉哪一个多余的驱动呢?
回复

使用道具 举报

62#
发表于 2010-3-24 00:04:12 | 只看该作者
帮顶,虽然目前自己懒的动手,下载备用
回复

使用道具 举报

63#
 楼主| 发表于 2010-3-24 20:57:34 | 只看该作者
原帖由 zhaohj 于 2010-3-23 23:25 发表
希望继续更新,换一种效率更高的编程风格。
外置SRS驱动最简单的方法,就是拷贝人家PE已经内置的驱动为自己所用。但现在的SIF文件太臃肿了,要外置只有减肥。
楼主的工具,还是很有实用价值!


换成asp,做成一个网页,贴上去,处理后显示出来,加个复制到剪贴板的链接怎么样


@nobodytt

这个问题我回答不了你,不过我估计不会自动用另外一个去替代,而是会按某种优先原则,只有一个会起效果,至于是第一个起效果,还是第二个,没测试过
回复

使用道具 举报

64#
发表于 2010-3-24 23:34:35 | 只看该作者
当然是谁先匹配谁先优先。如果VEN_DEV段相同,先匹配CC段,其次subsys段,再VEN_DEV段先后,谁先就谁先占用。
回复

使用道具 举报

65#
发表于 2010-3-24 23:37:13 | 只看该作者
[quote]原帖由 NicTense 于 2010-3-24 20:57 发表


换成asp,做成一个网页,贴上去,处理后显示出来,加个复制到剪贴板的链接怎么样[quote]

放出来我先试试。
回复

使用道具 举报

66#
发表于 2010-3-25 07:56:11 | 只看该作者
这个批处理写的太牛了
回复

使用道具 举报

67#
 楼主| 发表于 2010-3-25 11:31:06 | 只看该作者
原帖由 zhaohj 于 2010-3-24 23:37 发表
[quote]原帖由 NicTense 于 2010-3-24 20:57 发表


换成asp,做成一个网页,贴上去,处理后显示出来,加个复制到剪贴板的链接怎么样[quote]

放出来我先试试。


现在没空,我这人记忆力非常不好,几天不用的东西就忘光了,所以现在又忘了asp怎么写了

过阵子我写网页的时候再顺便写一个,不过貌似这个效率也不是太高

等偶有时间研究一下 powerbasic 再写一个专用的程序吧,像 txtsetup.exe 那样的,字符处理可以瞬间完成,无需等待


对了,有个问题我在想是不是应该改变一下处理方法

就是现在,当一个HWID被指定2个不同的驱动时,程序是把2个都保留的,并在error.txt中列出第二个(如果有第三,第四一并列出,但是统统保留)

是不是应该改为只保留第一个比较合理呢?
回复

使用道具 举报

68#
发表于 2010-3-25 17:50:08 | 只看该作者
一定要保留的。不同的设备之间有可能HWID是重叠的,这个时候就要用到subsys、cc段了。
如LSI的symmpi、lsi_sas,区分XP与03驱动,HWID是重叠的,这要手工处理了。
回复

使用道具 举报

69#
 楼主| 发表于 2010-3-25 19:08:46 | 只看该作者
原帖由 zhaohj 于 2010-3-25 17:50 发表
一定要保留的。不同的设备之间有可能HWID是重叠的,这个时候就要用到subsys、cc段了。
如LSI的symmpi、lsi_sas,区分XP与03驱动,HWID是重叠的,这要手工处理了。


我的意思是包括rev cc段在内完全重合,也就是同样的硬件指定了2个驱动的情况下,实际上后面那个保留了也是没用的
回复

使用道具 举报

70#
发表于 2010-3-25 20:36:01 | 只看该作者

回复 #63 NicTense 的帖子

如果不弄成复制到剪贴版的话,直接用带javascript和或vbscript的html就可以完成。我以前弄过一个GB2312汉字转区位码的html。
回复

使用道具 举报

71#
 楼主| 发表于 2010-3-26 11:46:39 | 只看该作者
昨天下载了powerbasic了,研究了半个小时,才写了个hello,你好
函数都忘光了,又没资料,NND,那英文天书得慢慢看了

过阵子有空再用这个来写好了,应该也就10K左右
不过貌似没有传说中的比vc还小那么厉害,hello,你好,编译出来也要6K,cnad的peset才5k
回复

使用道具 举报

72#
发表于 2010-3-26 17:31:48 | 只看该作者

回复 #71 NicTense 的帖子

有,那就是masm32,不过NT内核以4K页面为内存分配单位(DOS是16字节),小于4K的也一样占4K,所以5K和8K对内存的占用几乎没有区别:)
  1. ;console模式的hello
  2. .386
  3. .model flat,stdcall
  4. option casemap:none
  5. include \masm32\include\windows.inc
  6. include \masm32\include\masm32.inc
  7. include \masm32\include\user32.inc
  8. include \masm32\include\kernel32.inc
  9. includelib \masm32\lib\masm32.lib
  10. includelib \masm32\lib\user32.lib
  11. includelib \masm32\lib\kernel32.lib
  12. .data
  13.     szMsg db "您好!",13,10,0
  14. .code
  15. start:
  16.     invoke StdOut,ADDR szMsg
  17.     invoke ExitProcess,0
  18. end start
复制代码
  1. ;对话框的hello
  2. .386
  3. .model flat,stdcall
  4. option casemap:none
  5. include \masm32\include\windows.inc
  6. include \masm32\include\kernel32.inc
  7. include \masm32\include\user32.inc
  8. includelib \masm32\lib\kernel32.lib
  9. includelib \masm32\lib\user32.lib
  10. .data
  11.     szCaption db "Hello World",0
  12.     szText    db "您好!",0
  13. .code
  14. start:
  15.     invoke MessageBox,NULL,ADDR szText,ADDR szCaption,MB_OK
  16.     invoke ExitProcess,0
  17. end start
复制代码
两个例子编译后都是2.5KB,可以运行于win95~2008R2_64(包括win7)的任何一个windows或PE,而且只需要KRNEL32.DLL和USER32.DLL支持(CMDPE不行)。

***附文件信息资源文件模块,酱紫就不会像大多数masm32例程一样“没名没姓”的——
  1. #include "\masm32\include\resource.h"
  2. //1000 ICON "Main.ico"
  3. 1 VERSIONINFO
  4. FILEVERSION 1,0,0,0
  5. // PRODUCTVERSION 1,0,0,0
  6. FILEFLAGSMASK 63
  7. FILEFLAGS 0
  8. FILEOS 4
  9. FILETYPE 1
  10. FILESUBTYPE 0
  11. BEGIN
  12.     BLOCK "StringFileInfo"
  13.     BEGIN
  14.         BLOCK "080404B0"
  15.         BEGIN
  16.             VALUE "Comments","Free Ware"
  17.             VALUE "CompanyName","个人"
  18.             VALUE "FileDescription","HELLO例程"
  19.             VALUE "FileVersion","1.0.0.0"
  20.             VALUE "InternalName","HELLOALL.EXE"
  21.             VALUE "LegalCopyright","netwinxp版权所有"
  22. //          VALUE "LegalTrademarks",""
  23.             VALUE "OriginalFilename","HELLOCMD.EXE"
  24. //          VALUE "PrivateBuild","Beta版"
  25.             VALUE "ProductName","软件学习例程"
  26.             VALUE "ProductVersion","1.0.0.0"
  27. //          VALUE "SpecialBuild",""
  28.         END
  29.     END
  30.     BLOCK "VarFileInfo"
  31.     BEGIN
  32.         VALUE "Translation",0x804,0x4B0
  33.     END
  34. END
  35. //Comments=备注
  36. //CompanyName=公司
  37. //FileDescription=描述
  38. //FileVersion=文件版本
  39. //InternalName=内部名称
  40. //LegalCopyright=版权
  41. //LegalTrademarks=注册商标
  42. //OriginalFilename=源文件名
  43. //PrivateBuild=内部版本说明
  44. //ProductName=产品名称
  45. //ProductVersion=产品版本
  46. //SpecialBuild=特殊说明
  47. //Translation=语言
复制代码

[ 本帖最后由 netwinxp 于 2010-3-26 21:10 编辑 ]

hello.rar

818 Bytes, 下载次数: 30, 下载积分: 无忧币 -2

编译好的文件

hello_info.rar

950 Bytes, 下载次数: 25, 下载积分: 无忧币 -2

加上文件信息要多1K...

回复

使用道具 举报

73#
 楼主| 发表于 2010-3-26 21:18:06 | 只看该作者
没用过masm,怎么语法这么像basic的,很有亲切感啊

c的亲切感只在10年前维持了1、2个月就消失了
回复

使用道具 举报

74#
发表于 2010-3-26 22:03:41 | 只看该作者
牛人辈出,不顶不行啊
回复

使用道具 举报

75#
发表于 2010-3-26 22:23:20 | 只看该作者

回复 #73 NicTense 的帖子

masm32和VC++差不多,大量调用windows函数,所以所有语言看起来都很像,但自己处理的部分就比较难了,
MOV 寄存器,内存指针
RCL 寄存器
PUSHAD
之类的就会很多,长得就和MASM(DOS)差不多了。
汇编的好处就是效率高(源代码很可能比目标代码还大),而且权限灵活,很多小个头的.sys就是汇编编的。
下面这个罗云彬masm32教学的ping例程和basic差别就比较明显了:)编译后(即使加上文件信息)也比系统自带的ping小多了:)

[ 本帖最后由 netwinxp 于 2010-3-26 23:07 编辑 ]

ping.rar

6.12 KB, 下载次数: 23, 下载积分: 无忧币 -2

ping

回复

使用道具 举报

76#
 楼主| 发表于 2010-3-27 11:50:46 | 只看该作者
原帖由 netwinxp 于 2010-3-26 22:23 发表
masm32和VC++差不多,大量调用windows函数,所以所有语言看起来都很像,但自己处理的部分就比较难了,
MOV 寄存器,内存指针
RCL 寄存器
PUSHAD
之类的就会很多,长得就和MASM(DOS)差不多了。
汇编的好处就 ...


找不到powerbasic的中文函数库或者教程,只能啃天书了,惨不忍睹

什么情况下用汇编能感觉到明显的优势的,如果有用我就去找个入门教程来看看,汇编反正也只会用来处理一些比较简单的东西

复杂的程序用汇编会写死人的

powerbasic可以插入汇编,只是汇编要记那些寄存器,远不如变量用得方便
回复

使用道具 举报

77#
发表于 2010-3-27 12:14:12 | 只看该作者
呵呵,你慢慢啃吧,当做是学一门语言。实际上,我们写东西,真正需要它时,学习语言才会深刻领会。虽然刚开始编程并不理想,比如代码优化什么的,但学会了以后慢慢会融会贯通!
masm32和VC++,大量调用windows函数,掌握和理解这些现成的函数,也就学会了这些语言。但也好像并不容易的。
我的工作性质与电脑基本无关,时间一长,什么都忘了,就看你们的了。
回复

使用道具 举报

78#
发表于 2010-3-27 22:24:16 | 只看该作者
masm32编出来的东西就是小!
用KOL编了个Hello world还要20多K,压缩还得10多K   到极限了!

[ 本帖最后由 haiou327 于 2010-3-27 23:38 编辑 ]

hello.rar

13.01 KB, 下载次数: 28, 下载积分: 无忧币 -2

回复

使用道具 举报

79#
 楼主| 发表于 2010-3-28 01:48:22 | 只看该作者
原帖由 haiou327 于 2010-3-27 22:24 发表
masm32编出来的东西就是小!
用KOL编了个Hello world还要20多K,压缩还得10多K   到极限了!


谁让你用delphi6了,据说用2-5只有10-13k左右

这帖变成hello world大全了,我也上传一个

hello.rar (2.74 KB, 下载次数: 29)
回复

使用道具 举报

80#
发表于 2010-3-28 12:17:05 | 只看该作者

回复 #79 NicTense 的帖子

不带图标6KB,这PB还编译出来的还算贼小啊!
回复

使用道具 举报

81#
 楼主| 发表于 2010-3-31 12:27:00 | 只看该作者
打算对SourceDisksFiles字段进行格式化

我发现基本上所有的pe的txtsetup.sif的这个字段都有点乱七八糟的

这里格式化一下也能减肥不少,而且看上去会齐整很多

有几个问题需要大家帮忙,确认一下

ADPTSF50.sys=1,,,,,,4_,4,1,0,,1,4

以上行为例

1、4_这个位置,数字代表第几张盘,pe下实际上是没有意义的,省去效果是否一样,当_在前面代表未压缩,统一为 _1 是否效果一样

2、红色字体的1,0,第一个是当升级系统时的复制选项,第二个是新安装系统时的复制选项,请问pe下会被认为是升级还是新安装系统,如果这个是固定的,那就意味着这2个只要指定一个就行了,另外一个是没有任何意义的

3、蓝色部分的,我的理解是,当前面那个被省略掉的文件名如果指定时,这个才起作用,4应该是代表目标目录,而1代表什么?


[ 本帖最后由 NicTense 于 2010-3-31 23:40 编辑 ]
回复

使用道具 举报

82#
发表于 2010-3-31 22:10:06 | 只看该作者
回复

使用道具 举报

83#
 楼主| 发表于 2010-3-31 23:18:31 | 只看该作者
原帖由 zhaohj 于 2010-3-31 22:10 发表
看看老毛桃的解释吧:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=33852&page=1#pid459752


刚看了,写得太简单了,貌似都是网上被转了无数次的东西,没能解答我的问题
回复

使用道具 举报

84#
发表于 2010-3-31 23:31:07 | 只看该作者
原帖由 NicTense 于 2010-3-31 23:18 发表


刚看了,写得太简单了,貌似都是网上被转了无数次的东西,没能解答我的问题


看看这个,比较详细!!!!
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=80395&extra=page%3D1%26amp%3Bfilter%3Ddigest
回复

使用道具 举报

85#
 楼主| 发表于 2010-3-31 23:39:27 | 只看该作者
原帖由 caomaoLBL 于 2010-3-31 23:31 发表


看看这个,比较详细!!!!
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=80395&extra=page%3D1%26amp%3Bfilter%3Ddigest


嗯,这个是目前最详细,也是网上被转载得最多的版本,但是依然回答不了我的问题,有没有人对这个比较内行,可以直接回答我的问题
回复

使用道具 举报

86#
发表于 2010-4-1 10:23:17 | 只看该作者
一般分为三部分:补丁包部分、源位置和目标位置
1)第一个数字表示哪个补丁包(也就是sp?),建议使用1(表示原版)或100
2)第二部分数字表示源文件所在位置、有没有压缩等,大致分为——SourceDisksNames[.平台]、SourceDisksFiles[.平台]
<1>DISK:数字=磁盘描述(也就是那个TAG文件名)[,磁盘卷标[,未使用[,路径(如果没有则表示根目录)]]]
<2>FILE:盘号(也就是<1>所使用的数字)[,子目录][,大小]
3)最后两三个数字最关键,它表示目标位置 DefaultDestDir(如果缺省表示相对于%systemroot%)和DestinationDirs:drid[,subdir]
至于数字就很难说了,它可能表示好几部分呢。
BTW:拷贝操作则一般直接用缺省,否则一大堆","之间就要天上数值了。
***
建议驱动的DLL文件(通常放在system32)写成——
=1,,,,,,4_,2,0,0,,1,2
SYS文件(通常放在drivers)写成——
=1,,,,,,4_,4,1,,,1,4

[ 本帖最后由 netwinxp 于 2010-4-1 11:48 编辑 ]
回复

使用道具 举报

87#
发表于 2010-4-1 10:50:13 | 只看该作者
ram模式启动,都删除了也行

那两个是备用的,不需要,具体如下

[SourceDisksFiles] 区段中每行的语法:


filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename
源文件名=磁盘号,子目录,升级代码,新建安装代码,备用,备用,新文件名

额外字段由逗号(,)隔开, 这是 Windows NT 指定的.

当从软盘上开始安装时就会用到 diskid 了. (或者是多张光盘?)

subdir 就是复制文件的目的文件夹. Subdir 代码是在 TXTSETUP.SIF 的 [WinntDirectories] 区段中进行定义的.

upgradecode 是个个位数, 用于决定是否要升级比较老版本的同名文件. 它可以决定是否要在文本安装模式下复制这个文件.

以下是用于决定文件复制的代码定义.

状态代码 – 复制操作
0 – 总是复制这个文件
1 - 只有当同名文件存在于安装目录中时, 才复制这个文件
2 - 只有当安装目录中没有同名文件时, 才复制这个文件
3 - 不要复制这个文件

newinstallcode 是个个位数, 当全新安装时就要用到这个. 它可以决定是否要在文本安装模式下复制这个文件. newinstallcode 为可选项; 如果没有包含这个代码, 则文件不会被复制 (代码 = 3).

newfilename 用于重命名要复制的文件
回复

使用道具 举报

88#
 楼主| 发表于 2010-4-1 10:57:00 | 只看该作者
原帖由 dvd008 于 2010-4-1 10:50 发表
ram模式启动,都删除了也行

那两个是备用的,不需要,具体如下

[SourceDisksFiles] 区段中每行的语法:


filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename
源 ...


你数错位置了,你贴的这个每个介绍txtsetup.sif的都有

那个1,4是在newfilename 之后的,根据写法,可以确定是目标位置,最后一个数字的定义同第2个,那个1是开关还是什么就不清楚了,目前没看到1以外的写法

我现在不确定的几个问题是

1、启动pe时,到底是视为升级,还是新安装系统

2、最后的这2个数字,是只有newfilename被指定时才生效,还是无论指不指定都生效

[ 本帖最后由 NicTense 于 2010-4-1 10:59 编辑 ]
回复

使用道具 举报

89#
 楼主| 发表于 2010-4-1 11:09:06 | 只看该作者
原帖由 netwinxp 于 2010-4-1 10:23 发表
2)第部分数字表示源文件所在位置、有没有压缩等,建议用4_
3)最后两三个数字最关键,它表示目标位置(盘、路径、子路径),盘通常不用再指定,路径和子路径通常为1,2(system32)和1,4(system32\drivers),我猜测1表示windows目录


2) 用4_有什么特殊含义吗? 和 1_  有何区别,微软这个设置有点奇怪,如按软盘算,应该至少都是几百张了,可是光盘又只有一张,这个1,2,3,4不知道以什么为参考,看大小应该是zip盘,不过这里没看出1_和4_会有什么区别,难道有什么隐含的设定?


3)倒数第三个不是应该是改名项吗?另外,最后一个数字跟第2个数字的定义是一样的,这样,倒数第二个貌似不应该是目录,更像是一个开关之类的,一直没找到官方的资料
回复

使用道具 举报

90#
发表于 2010-4-1 11:12:26 | 只看该作者
pe下没用,[SourceDisksFiles] 区段可以删除

ADPTSF50.sys=1,,,,,,4_,4,1,0 就足够了

4.。。。。目的目录 drv
1 升级代码
0 全新安装代码

后面的没用,重命名只是安装版的个别文件用到

由于drv目录已经存在,整个这部分内容没用
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 14:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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