Board logo

标题: DOS环境下的Config中文菜单驱动程序Confect V4.0 [打印本页]

作者: sanchuan     时间: 2008-11-21 13:43    标题: DOS环境下的Config中文菜单驱动程序Confect V4.0


新帖见:
http://www.cn-dos.net/forum/viewthread.php?tid=45211&fpage=1




Confect.sys V4.0能够直接驱动中英文菜单,使用简便,只需一个CCDOS或UCDOS的汉字库文件就能在config中显示汉字。V4.0版的字库可以放在当前盘的根目录。

在Config.sys配置文件的开始部分,添加以下语句:

device=Confect.sys c:\dos\hzk16

如果Confect.sys不在根目录,则必须指明路径。上面语句中的hzk16,是CCDOS或UCDOS的汉字库文件,如果hzk16在根目录,则上面的语句可简写为:

device=Confect.sys

中文菜单部分以一行REM [SETTINGS]开始,以一行REN [CONFIG]结尾。

REM [SETTINGS]定义confect中文菜单块
set color=定义菜单项字符的颜色,背景色和提示信息的背景色,颜色值为0~7;
    set default=定义启动菜单默认的选项和等待的时间;
    set heading=定义启动菜单的标题头,允许定义四行标题头;
    set endnote=定义启动菜单的尾注,允许定义四行尾注;
    set confect=定义一个菜单主选项,允许定义八个主选项;
set ...
... ...( 菜单项 )
... ...
REM [...]( 配置块 )
... ...
REM [CONFIG]定义confect中文菜单块的结束
... ...( Config的公用配置 )


用set confect= 定义一个菜单项的一般格式为:
set confect=块名, 中文或英文的项目名



下面是一个最简单的Config配置的例子:

    device=Confect.sys
    SET PATH=C:\;C:\DOS;..;

    rem [SETTINGS]
    set color=7,0
    set default=1,30
    set heading: 计算机系统维护                         MSDOS 7.1
    set heading:===================================================
    set endnote:用↑或↓键移动亮条,或用 A、B、C、D ... 键选择主项
    set confect=restore,恢复计算机系统
    set confect=backup,备份计算机系统

    rem [restore]
    set exec=\dos\ghost.exe -clone,mode=pload,src=H:\WinC.gho:1,dst=1:1 -fx -sure

    rem [backup]
    set exec=\dos\ghost -clone,mode=pdump,src=1:1,dst=H:\WinC.gho -AUTO -z9 -sure -fx

    rem [CONFIG]

    device=\dos\himem.sys /testmem:off
    ......


    在autoexec.bat添加以下语句:

    goto %confect%
    ......
    :restore
    %exec%
    goto exit

    :backup
    %exec%
    goto exit



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

Confect菜单的拓展
1. 菜单提示
每一条菜单主项,可以添加一条提示信息,其定义格式如下:
set confect=块名, 中文或英文的项目名; 提示内容
上面是菜单主项定义的完整格式,注意等号、逗号和分号要用英文字符。
当移动亮条时,在菜单下方会出现对应主项的提示信息。
2. 子项,每一条主项下可以定义1~4条子项,其完整的定义格式如下:
set option=块名, 中文或英文的子项名称; 默认标志符
其中,默认标志符为 & ,表示该项为默认选中的子项。若省去 & ,则子项格式为:
rem option=块名, 中文或英文的子项名称

下面是一个主项和四个子项的示例:
set confect=restore,恢复计算机系统;忠告: 恢复系统将覆盖相应盘中的数据,请作好数据备份
set option=restoc,恢复C盘;&
set option=restod,恢复D盘;&
set option=restart,恢复后重启
set option=off,恢复后关机



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


一个完整的Config配置与批处理的实例

Config.sys 部分:

device=c:\dos\Confect.sys c:\dos\hzk16
SET PATH=C:\;C:\DOS;..;

rem [SETTINGS]
set color=7,0,4
set default=1,30
set heading:
set heading: 计算机系统维护                         MSDOS 7.1
set heading:===================================================
set endnote:用↑或↓键移动亮条,或用 A、B、C、D ... 键选择主项
set endnote:复选项用数字键设置(或清除),用 Enter 键确定。

set confect=restore,恢复计算机系统;忠告: 恢复系统将覆盖相应盘中的数据,请作好数据备份
set option=restoc,恢复C盘;&
set option=restod,恢复D盘;&
set option=restart,恢复后重启
set option=off,恢复后关机;&

set confect=backup,备份计算机系统;忠告: 备份系统前,应确保系统数据安全可靠
set option=backc,备份C盘
set option=backd,备份D盘
set option=restart,备份后重启;&
set option=off,备份后关机

set confect=DOS,进入DOS系统

set confect=RESTART,重新启动计算机

; [restore]
; [restoc]
set exec1=\dos\ghost.exe -clone,mode=pload,src=H:\WinC.gho:1,dst=1:1 -fx -sure
; [restod]
set exec2=\dos\ghost.exe -clone,mode=pload,src=H:\WinD.gho:1,dst=1:2 -fx -sure

; [backup]
; [backc]
set exec1=\dos\ghost -clone,mode=pdump,src=1:1,dst=H:\WinC.gho -AUTO -z9 -sure -fx
; [backd]
set exec2=\dos\ghost -clone,mode=pdump,src=1:2,dst=H:\WinD.gho -AUTO -z9 -sure -fx

; [dos]
device=\dos\oakcdrom.sys /D:mscd001
device=\dos\btcdrom.sys /D:mscd001
device=\dos\aspicd.sys /D:mscd001
devicehigh=\dos\ramdrive.sys /E 2048
; [RESTART]
set exec3=\dos\restart.com
; [off]
set exec4=\dos\off.com
; [CONFIG]

device=\dos\himem.sys /testmem:off
device=\dos\emm386.sys noems

dos=high,umb,auto
fcbshigh=4,0
fileshigh=30
buffershigh=30,0
lastdrivehigh=32
stackshigh=9,256


Autoexec.bat 部分:

@ECHO off
path c:\dos;c:\
PROMPT $P$G
cls

goto %confect%

:restore
%exec1%
%exec2%
%exec3%
%exec4%
goto exit

:backup
attrib -h -s hiberfil.sys
attrib -h -s pagefile.sys
del hiberfil.sys
del pagefile.sys
%exec1%
%exec2%
%exec3%
%exec4%
goto exit

:restart
C:\DOS\restart.com

:off
C:\DOS\off.com

:dos
LH c:\dos\MSCDEX.EXE /D:mscd001 /L:D

:exit






[ Last edited by sanchuan on 2009-1-4 at 20:39 ]
作者: xugaohui     时间: 2008-11-21 14:49
马上下载后试用了一下。比论坛上其它中文菜单驱动使用都要方便的多。最主要是它可以使用ccdos的hzk16.目前只有ccdos的hzk16才能有数码0-9。
还可以使用其它点阵的字体的
如图:

可以做出很酷的菜单
yaya的菜单驱动也不错,但是显示汉字用的16j.dot使用不方便修改。还有一些兼容性问题。如果配合本是的显示中文技术,编辑config.sys又不方便。
还没有试楼主这个软件的功能。如果能做到ConfigS.Mnu那么强大就好了。
汉字中文有空竖线。
这么好的东西现在才发布出来,真是太可惜了。
在菜单中不支持F5 F8 shift+F8热键。
需要编辑autoexec.bat,现在是使用变量%confect%,不是原来的config.sys
不能使用acsii制表符,会显示成中文字符。
rem endnote好像根本不起作用。没看到显示在那里。
标题总是被转换成大写字符了。
每一行菜单项前面总是有ABC...字符,而且是在第一列显示的,如果能改成当光带在那一行时就在前面显示一个字符,如一个指向右的手形。

希望楼主能单独出一个用于在config.sys显示中文的驱动,这样我们可以使用其它菜单驱动,比如用yaya的ConfigS.Mnu 1.00,目前config.sys中显示中文还是你这个比较灵活。

[ Last edited by xugaohui on 2008-11-21 at 18:18 ]
作者: wuchan     时间: 2008-11-21 15:46
我怎么试用了不成工,无法引导原来的config可以引导的
作者: wuchan     时间: 2008-11-21 15:50
哦,需要将原来的autoexec.bat中的文件移植到config中.
作者: xugaohui     时间: 2008-11-21 16:09
config.sys,autoexec.bat只需要很小的改动.请教楼上的autoexec.bat怎么移植到config.sys中?
作者: wuchan     时间: 2008-11-21 16:44
我也没有改清楚..我的改成这样无法引导.正在查找呢
config文件:
device=confect.sys

REM [SETTINGS]
rem color=15, 1
rem default=1, 3
rem heading: DOM 和 GHOST 文件制做系统        
rem heading:===================================================
rem confect=32_128_CF_2G_M,  DOM /CF 烧写制作
rem confect=2G_A, 2G/4G -A 芯片的格式化
rem confect=HD, 硬盘母盘制作
rem confect=GHOFILE, 母盘镜像文件回传制作
rem confect=CLEAN, 退出到DOS
REM [CONFIG]


rem [32_128_CF_2G_M]

rem [2G_A]

rem [HD]

rem [GHOFILE]

rem [CLEAN]

[COMMON]
buffers=40,0
files=20
break=on
lastdrive=Z
dos=high,umb
device=himem.sys /testmem:OFF


auto 文件:
GOTO %CONFECT%


:32_128_CF_2G_M
CLS
REM #################################################################
CALL ACFDOWN.BAT
goto end



:2G_A
CLS
@REM #################################################################
CALL A2GDOWN.BAT
goto end


:HD
CLS
@REM ##################################################################
CALL HDdown.BAT
goto end


:GHOFILE
CLS
@REM ###################################################################
CALL GHOMAKE.BAT
goto end

:CLEAN
goto END

:END
path=c:\nc;c:\nc\nc



我改完后,就无法引导了.
作者: xugaohui     时间: 2008-11-21 17:17
回楼上的。你的config.sys中有[common],所以不行。
另外rem endnote:        定义启动菜单的尾注,允许定义四行尾注;还没有看出是显示在那里了。

[ Last edited by xugaohui on 2008-11-21 at 18:07 ]
作者: wuchan     时间: 2008-11-21 17:44
照你说的我改了改..还是不行..
在启动时老是提示 "label not found"
我想应该是auto文件出错了
作者: sanchuan     时间: 2008-11-21 21:31
2楼的朋友,关于汉字显示中空,是本人的疏忽,发错了压缩文件。

你可重新在一楼下载。
作者: sanchuan     时间: 2008-11-21 21:44

6楼的朋友,REM [CONFIG]应该放在[COMMON]的位置上。Confect只处理REM [SETTINGS]开始,至REM [CONFIG]结尾的部分。[COMMON]块,除非你在菜单项中有定义,并且放在REM [CONFIG]之前。
作者: xiaoyunwang     时间: 2008-11-21 22:49
支持楼主继续更新和完善!
作者: xugaohui     时间: 2008-11-21 23:22
重下载后汉字没有中空了。
菜单功能还有些不足,如每项菜单总是从第一列开始显示的。不能设置缩近多少空格
不能设置选中某行菜单时在前面前一个字符(指右向小手图形),因为你的每一行菜单都相隔一个空行。如果选择一项菜单时前面没有一个字符的话,就太单调了。
菜单字符内不能大小写转换,所有的都是大写了。期待它的功能能超过ConfigS.Mnu 1.00
看了confec.sys,发现它只能从c:\读取hzk16.如果引导盘是a:就不方便了,建议去掉这个限制。
你的这个软件显示中文实在太方便了,支持楼主。

[ Last edited by xugaohui on 2008-11-21 at 23:31 ]
作者: wuchan     时间: 2008-11-22 21:18
[restoc]
set exec1=\dos\ghost.exe -clone,mode=pload,src=H:\WinC.gho:1,dst=1:1 -fx -sure
; [restod]
set exec2=\dos\ghost.exe -clone,mode=pload,src=H:\WinD.gho:1,dst=1:2 -fx -sure

有个疑问,像楼主的示范说明中。是不是每个菜单只能执行单个指令,无法顺序执行一批的指令。还有就是在auto中也要指定到对应的 set ××××下。。
不知道有没有理解错误。
作者: sanchuan     时间: 2008-11-22 23:07

每个块可以根据具体情况设置多条指令。

我在示例中设置的环境变量 exec ,实际是一条命令,在auto中只需要以 %exec% 的形式出现,DOS系统就会解释为命令去执行。

因为Confect的子项是可选的,所以在auto中,对应主项下出现:
%exec1%
%exec2%
%exec3%
%exec4%
若环境变量的值不为空——即在Config菜单中选择的项,auto就会执行相应的命令;反之,没有选择的项,其环境变量值为空,DOS自然就作为空处理了。

谨此回复13楼
作者: woshiwo99     时间: 2008-11-23 19:49
好东西啊。。。抽空研究下
作者: wuchan     时间: 2008-11-24 12:46
终于修改成功了.谢谢 l Z

就是有时候会有中缝.有时正常.不过我对这个要求不高.谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: sanchuan     时间: 2008-11-24 13:16
你可能下载的是我发错了的压缩文件,你可以在1楼重新下载,应该不会出现汉字中空的问题。
作者: xugaohui     时间: 2008-11-24 14:12
请作者继续完善,如果启动盘是a盘,它默认也只能从c:盘根目录下找hzk16。

[ Last edited by xugaohui on 2008-11-24 at 23:17 ]
作者: guo     时间: 2008-12-5 12:12
好东东,收下了
作者: wuchan     时间: 2008-12-9 15:30
问下,如果加载的是GBK16的字库,是不是只要把HZK16的文件替换就行了?
作者: sanchuan     时间: 2008-12-9 16:48
confect只对GB码,没有考虑GBK大字符集。也许后续版本会考虑的。
作者: sanchuan     时间: 2008-12-9 17:22


  Quote:
Originally posted by wuchan at 2008-12-9 15:30:
问下,如果加载的是GBK16的字库,是不是只要把HZK16的文件替换就行了?

虽然没有考虑大字符集,但可以使用GBK16中的GB部分(也就是说,可以使用简体字)。需要在Config.sys头部指明文件路径,即:

device=confect.sys c:\dos\Hzk16.gbk

[ Last edited by sanchuan on 2008-12-9 at 17:26 ]
作者: supertom     时间: 2008-12-12 23:57
不知道是怎么产生的,想问一下楼主:
根据楼主提供的测试config.sys和autoexec.bat文件,只是进行修改了加载文件的路径,其他没有动,结果在虚拟机上测试时发现只显示菜单部分(中间无缝),经过检查发现“set heading:"和”set endnote:"这两个标题头和尾注都没显示,无论是中文还是字母都没显示,奇怪
作者: supertom     时间: 2008-12-13 00:09
好像是Confect.sys文件有问题吧,之前下载的可以全部正常显示,但字体会有缝隙。之后下载的应该是楼主重新修改过,字体显示正常(无缝),但是标题头和尾注显示不出来,是不是“set heading:"和”set endnote:"这两个语句在修改时出故障了?
作者: supertom     时间: 2008-12-13 00:29
问题还是出在“set heading:"和”set endnote:"这里,这个语句在3.0版本是正确的,为什么到4.0就改成“set heading="和”set endnote="了呢,楼主也不加以说明
作者: sanchuan     时间: 2008-12-13 07:45


  Quote:
Originally posted by supertom at 2008-12-13 00:29:
问题还是出在“set heading:"和”set endnote:"这里,这个语句在3.0版本是正确的,为什么到4.0就改成“set heading="和”set endnote="了呢,楼主也不加以说明

DOS在处理 “rem ..... " 语句时,会将其后续的英文字符全部转换成大写,为了能在菜单中显示小写或大写的字符,采用了 ”set ..... "语句。
DOS的 set 命令规定其变量名后使用 “=” 号。若用冒号,DOS视为错误而不予处理。
作者: supertom     时间: 2008-12-13 15:44
我晕,搞了半天,菜单显示倒是成功了,但选择运行后会出现“lable not found”提示,应该是%exec%的问题........
另外,关于选项提示,只可以提示二个主项吗?为什么到了第三个主项的时候会出现提示乱码的情况呢,如何解决呢?
作者: supertom     时间: 2008-12-13 16:22
大小上学老师就批评不细心,活了半辈子了,这臭毛病还没改。“lable not found”的问题是解决了,关键在于处理Autoexec.bat时不细心导致。但第三项提示乱码不知道什么问题了
作者: sanchuan     时间: 2008-12-13 18:06


  Quote:
Originally posted by supertom at 2008-12-13 16:22:
大小上学老师就批评不细心,活了半辈子了,这臭毛病还没改。“lable not found”的问题是解决了,关键在于处理Autoexec.bat时不细心导致。但第三项提示乱码不知道什么问题了

请把第三项的语句发上来,我看看。

[ Last edited by sanchuan on 2008-12-13 at 18:07 ]
作者: supertom     时间: 2008-12-14 12:22
set confect=UHCI, U盘加载方式三;提示:适合老型号主板
作者: sanchuan     时间: 2008-12-14 14:13


  Quote:
Originally posted by supertom at 2008-12-14 12:22:
set confect=UHCI, U盘加载方式三;提示:适合老型号主板

你这一条可能是最后一句主项吧。Confect 没有考虑最后一项的提示和相应的选项。
 后续的版本会改过来。

昨天我将有关的问题发到了你的邮箱。

[ Last edited by sanchuan on 2008-12-14 at 14:16 ]
作者: supertom     时间: 2008-12-15 09:34
嗯,看到了,还是非常感谢的。有个建议啊,这样的好东西用着不错,可是设置起来比较麻烦,能不能做个类似shell的软件..........呵呵,虽然推广起来容易多了,可是投入的精力和时间也多了
作者: supertom     时间: 2008-12-16 10:26
又出了点小问题,当我颜色设置到set color=7,1,5的情况下,在液晶显示器会提示超出频率范围,无法显示菜单,估计是频率超出60赫兹了,我想这个问题是跟颜色总体设置有关还是单一背景颜色有关,如何解决,盼复
作者: supertom     时间: 2008-12-16 11:11
好像不是背景颜色的问题,怎么回事呢
作者: xugaohui     时间: 2008-12-16 11:49
用本事的v软件生成一个0.sys,在config.sys中加载它。就能解决液晶显示器提示超出频率范围的问题。
作者: supertom     时间: 2008-12-16 17:05
V软件没用过,呵呵。刚刚尝试生成了一个0.sys,但是加载后显示“config.sys is to large for memory.........”,这是怎么回事
作者: sanchuan     时间: 2008-12-17 20:13
Quote:
Originally posted by supertom at 2008-12-17 17:26:
哎,改成9点字符时钟,液晶显示的问题倒是解决了,但显示文字中间又逢,难道鱼和熊掌不能兼得吗  



9点时钟只能解决32个汉字无缝——这种无缝会造成某些汉字中间的“竖”划变粗。

要解决这个问题,需要从两方面考虑:1、修改字库数据;2、修改INT10h中断。呵呵......
作者: supertom     时间: 2008-12-18 17:54
只能解决32个汉字?YAYA的那种方法是不是也有同样的限制呢。看论坛里面很多都说利用V生成0.sys这种方法,不知道能不能解决,我一直没有加载成功
作者: sanchuan     时间: 2008-12-18 19:26


  Quote:
Originally posted by supertom at 2008-12-18 17:54:
只能解决32个汉字?YAYA的那种方法是不是也有同样的限制呢。看论坛里面很多都说利用V生成0.sys这种方法,不知道能不能解决,我一直没有加载成功

VGA9点字符时钟,只有32个字符能将第8位复制到第9位——所以只有32个汉字可以做到无缝,其它的就不能了。

你可以用4.1版
作者: joinnow2008     时间: 2009-1-4 19:12


  Quote:
Originally posted by xugaohui at 2008-12-16 11:49:
用本事的v软件生成一个0.sys,在config.sys中加载它。就能解决液晶显示器提示超出频率范围的问题。

不成功。

建议各位在测试的时候,要实试,两种以上的显示器才行。
作者: sanchuan     时间: 2009-1-4 20:29


  Quote:
Originally posted by joinnow2008 at 2009-1-4 19:12:



不成功。

建议各位在测试的时候,要实试,两种以上的显示器才行。

4.0版改变了9点字符时钟为8点,对部分液晶显示会出现超频宽的问题。
4.2版默认为原9点字符时钟,不会影响这部分液晶显示器超频。

不建议使用4.0版的confect。
作者: joinnow2008     时间: 2009-1-4 22:33
楼上仁兄所说的4。2版,
是不是已经改进可以菜单缩进了?

我在ACER液晶上测试,指定为9的话,也可以没中线,且可正常显示。
作者: 本是     时间: 2009-1-4 22:52
不相同汉字数不超过32个时无缝,超过32个时必有缝!
作者: 本是     时间: 2009-1-4 22:55


  Quote:
Originally posted by joinnow2008 at 2009-1-4 19:12:
不成功。
建议各位在测试的时候,要实试,两种以上的显示器才行。

VTmagik -m0 /tt config.sys
ren config.sys *.old
ren config.new *.sys
用这个CONFIG.SYS不会引起液晶显示器超频错误。
作者: xugaohui     时间: 2009-1-4 22:58
同样的config菜单,在vmware上少部分汉字有中竖缝,在vpc上完全没有中缝。在真实电脑试过很多配置都没有发现有中缝。其实有中缝并不影响使用。就这种显示中文技术来说真正的限制还是中文字数问题。
作者: joinnow2008     时间: 2009-1-4 23:58


  Quote:
Originally posted by 本是 at 2009-1-4 22:55:


VTmagik -m0 /tt config.sys
ren config.sys *.old
ren config.new *.sys
用这个CONFIG.SYS不会引起液晶显示器超频错误。

辛苦了,朋友。向你致敬。


记得有人向乔治·卢卡斯推荐因《黑客帝国》动作设计而名声大振的
香港武术指导袁和平,希望让他们的来设计一下《星球大战》里绝地武士
的动作,卢卡斯拒绝了,他说

绝地武士的招式应该是“简单而有效的”
作者: yjd     时间: 2009-1-8 02:06
初步看了下。感觉还是这个简单多了。非常好。造福大众。
本是大师的东西太复杂了我看不会-_-!!!
作者: joyer     时间: 2009-5-25 01:21

作者: s32307     时间: 2009-5-25 02:53
高手!
作者: ni2000ni2000     时间: 2009-8-19 05:33
十分谢谢
作者: jjjian     时间: 2009-10-15 09:32
才接触DOS,非常地高深。
作者: terminal     时间: 2009-12-10 15:48
好,顶一下
作者: wqiqiqi     时间: 2009-12-14 12:12
还是这个简单,好理解,感谢LZ分享