|
xsaxy
初级用户
积分 32
发帖 15
注册 2007-1-14
状态 离线
|
『楼 主』:
请yaya解答,逐级执行式菜单编辑器ConMenu.sys的问题(BUG)
使用版本为:ConMenu.sys V2.12
经反复测试,ConMenu.sys在config.sys菜单过多时,会报:
without "cmn=[end]","cmn=[" , "cmn=]" or "cmn=)" "cmn=[" or "cmn=(" >16错误。
但实际情况是编辑没有错。如下面的测试配置文件,现在运行是正确的,但已无法向里面添加项目、菜单... 请大家测试。
config.sys
------------------------------------------------
device=himem.sys
device=acios.exe
device=ConfigS.Mnu /s
; cm0=[a. 测试菜单0 a...
; color=03,f
; default=a,60
; initial=14
; caption=
; caption=
; caption= DOS工具盘中文菜单
; caption= ===================================================
; endnote= 按↑↓或相应字母选择菜单项;'-/+'为复选菜单,按回车选择/清除
; endnote= 在单选菜单按回车确定;按E^sc返回0级菜单
; endnote=
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[g.
; cm1=]1g
; cm1=[h.
; cm1=]1h
; cm1=[i.
; cm1=]1i
; cm1=[j.
; cm1=]1j
; cm1=[k.
; cm1=]1k
; cm1=[l.
; cm1=]1l
; cm1=[m.
; cm1=]1m
; cm1=[end]
; cm0=]a
; cm0=[b. 测试菜单0 b...
; cm1=[a. 测试菜单1 a
; cm1=]1a
; cm1=[b. 测试菜单1 b...
; cm2=[a. 测试菜单1 a
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[c.
; cm2=]2c
; cm2=[d.
; cm2=]2d
; cm2=[e.
; cm2=]2e
; cm2=[f.
; cm2=]2f
; cm2=[g.
; cm2=]2g
; cm2=[h.
; cm2=]2h
; cm2=[end]
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[end]
; cm0=]b
; cm0=[c. 测试菜单0 c...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[end]
; cm0=]c
; cm0=[d. 测试菜单0 d...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[g.
; cm1=]1g
; cm1=[end]
; cm0=]d
; cm0=[e. 测试菜单0 e...
; cm1=[a.测试菜单1 a...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[end]
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[g.
; cm1=]1g
; cm1=[h.
; cm1=]1h
; cm1=[end]
; cm0=]e
; cm0=[f. 测试菜单0 f...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[end]
; cm0=]f
; cm0=[g. 测试菜单0 g...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[g.
; cm1=]1g
; cm1=[h.
; cm1=]1h
; cm1=[i.
; cm1=]1i
; cm1=[end]
; cm0=]g
; cm0=[h. 测试菜单0 h...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[g.
; cm1=]1g
; cm1=[h.
; cm1=]1h
; cm1=[end]
; cm0=]h
; cm0=[i. 测试菜单0 i...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[end]
; cm0=]i
; cm0=[j. 测试菜单0 j...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[end]
; cm0=]j
; cm0=[k. 测试菜单0 k...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[end]
; cm0=]k
; cm0=[l. 测试菜单0 l...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[end]
; cm0=]l
; cm0=[m. 测试菜单0 m...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[end]
; cm0=]m
; cm0=[n. 测试菜单0 n...
; cm1=[a. 测试菜单1 a...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[end]
; cm1=]1a
; cm1=[b. 测试菜单1 b...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[end]
; cm1=]1b
; cm1=[c. 测试菜单1 c...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[end]
; cm1=]1c
; cm1=[d. 测试菜单1 d...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[c.
; cm2=]2c
; cm2=[d.
; cm2=]2d
; cm2=[e.
; cm2=]2e
; cm2=[f.
; cm2=]
; cm2=[end]
; cm1=]1d
; cm1=[e. 测试菜单1 e...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[end]
; cm1=]1e
; cm1=[f. 测试菜单1 f
; cm1=]1f
; cm1=[end]
; cm0=]n
; cm0=[o. 测试菜单0 o...
; cm0=]0o
; cm0=[p. 测试菜单0 p...
; cm0=]0p
rem --------------------
rem 隐含菜单(块配置)
rem --------------------
; cm1=(1
; cm1=)EMM
; cm1=(2
; cm1=)NOEMM
; cm1=(3
; cm1=)HIMEM1
; cm1=(4
; cm1=)HIMEM2
; cm1=(5
; cm1=)
; cm1=(6
; cm1=)
; cm1=(7
; cm1=)
; cm1=(8
; cm1=)
; cm1=(9
; cm1=)
; cm1=[end]
; cm0=[end]
device=ConfigS.Mnu /u
|
|
2009-11-12 01:17 |
|
|
yaya
银牌会员
积分 1009
发帖 353
注册 2003-9-4
状态 离线
|
|
2009-11-12 09:52 |
|
|
xsaxy
初级用户
积分 32
发帖 15
注册 2007-1-14
状态 离线
|
|
2009-11-12 11:58 |
|
|
yaya
银牌会员
积分 1009
发帖 353
注册 2003-9-4
状态 离线
|
『第
4 楼』:
可显示菜单最大16项,a-p;隐含菜单最大9项.这限制在说明文件中有描述,不是BUG.
[ Last edited by yaya on 2009-11-13 at 09:22 ]
|
|
2009-11-12 15:42 |
|
|
xsaxy
初级用户
积分 32
发帖 15
注册 2007-1-14
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by yaya at 2009-11-12 03:42 PM:
可显示菜单最大16项,a-p;隐含菜单最大9项,出1-9.这限制在说明文件中有描述,不是BUG. |
|
首先,谢谢你的回复,但我的设置并没有超过限制。如上列配置中
; cm0=[c. 测试菜单0 c...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
------------------------------------------------------------------------------------------------
; cm1=[g. 这一菜单已无法加,其它菜单也如此。我测试多次了。
; cm1=]1g 请用我的测试菜单你加其余菜单试一下就知道了。
........
-------------------------------------------------------------------------------------------------
; cm1=[end]
; cm0=]c
|
|
2009-11-12 16:05 |
|
|
xsaxy
初级用户
积分 32
发帖 15
注册 2007-1-14
状态 离线
|
『第
6 楼』:
我查看了
http://www.cn-dos.net/forum/view ... ghlight=&page=3
『第 36 楼』
选项的排列的逻辑方式1
方式1:
├─A
├─B
│ ├─A
│ │ ├─A
│ │ └─B
│ ├─B
│ ├─C
│ └─D
│ ├─1
│ ├─2
├─C
└─D
└─1
└─2
我回答的是『第 37 楼』
方式1
我是这样理解的,也就是说cm0,a-p;cm1,a-p;cm2,a-p;.... 隐含菜单每一级最大9项,1-9。第二级又是最大9项,1-9... 如果是这样,我上面就没有错。
否则就是方式2
方式2:
├─A
├─B
│ ├─C
│ │ ├─D
│ │ └─E
│ ├─F
│ ├─G
│ └─1
│ └─2
├─I
└─J
└─3
└─4
不知我理解的对否。
|
|
2009-11-12 16:29 |
|
|
xsaxy
初级用户
积分 32
发帖 15
注册 2007-1-14
状态 离线
|
『第
7 楼』:
从我上面的测试配置可以看出,逻辑关系应该是1。但实际测试到一定级数时确不行。
[ Last edited by xsaxy on 2009-11-12 at 16:39 ]
|
|
2009-11-12 16:38 |
|
|
yaya
银牌会员
积分 1009
发帖 353
注册 2003-9-4
状态 离线
|
『第
8 楼』:
是方式1。
你在1楼说‘现在运行是正确的,但已无法向里面添加项目、菜单’。此时0级可显示菜单最大用到p,不能再增加0级菜单了,隐含菜单最大用到9,也不能再增加了这一级隐含菜单了。
隐含菜单应使用cm0=(,而不是cm1=(,应为它是在0级可显示菜单中。
[ Last edited by yaya on 2009-11-13 at 09:45 ]
|
|
2009-11-13 09:44 |
|
|
xsaxy
初级用户
积分 32
发帖 15
注册 2007-1-14
状态 离线
|
『第
9 楼』:
Quote: | Originally posted by yaya at 2009-11-13 09:44 AM:
是方式1。
你在1楼说‘现在运行是正确的,但已无法向里面添加项目、菜单’。此时0级可显示菜单最大用到p,不能再增加0级菜单了,隐含菜单最大用 ... |
|
经测试:
我将隐含菜单删除,往里面增加子菜单,多增加几项也就开始报错了。
|
|
2009-11-13 12:19 |
|
|
xsaxy
初级用户
积分 32
发帖 15
注册 2007-1-14
状态 离线
|
『第
10 楼』:
我反复测试,我的操作没有超限,但就是不行。
|
|
2009-11-13 12:21 |
|
|
xsaxy
初级用户
积分 32
发帖 15
注册 2007-1-14
状态 离线
|
『第
11 楼』:
Quote: | Originally posted by yaya at 2009-11-13 09:44 AM:
隐含菜单应使用cm0=(,而不是cm1=(,应为它是在0级可显示菜单中。 |
|
可我一楼的配置是可以正常运行的。
原菜单形式:
; cm0=[a
; cm0=]0a
......
......
; cm0=]p
; cm0=]0p
......
......
; cm1=(1
; cm1=)隐含1
.......
.......
; cm1=(9
; cm1=)隐含9
; cm1=[end] 这里一级隐含菜单结束
; cm0=[end] 这里零级菜单结束
按的你说法结构如下:
; cm0=[a
; cm0=]0a
......
......
; cm0=[o
; cm0=]0o
; cm1=(1
; cm1=)隐含1
.......
.......
; cm1=(9
; cm1=)隐含9
; cm1=[end] 这里一级隐含菜单结束
; cm0=]p (那么如果我没有0级p菜单,又有1级隐含菜单,是不是就要放
; cm0=]0p 到最末0级菜单之上的任意处,如cm0=[o 上。也就是说cm0=
[end]或cm1=[end]没有起到限制级数的作用。)
; cm0=[end] 这里零级菜单结束
隐含菜单的结束也用cm1=[end]这种形式感觉怪怪的,如果是cm1=(end)就好了。
|
|
2009-11-13 15:32 |
|
|
yaya
银牌会员
积分 1009
发帖 353
注册 2003-9-4
状态 离线
|
『第
12 楼』:
隐含菜单是可显示菜单中的组成部分,在1楼中
; cm0=[p. 测试菜单0 p...
; cm0=]0p
; cm1=(1
; cm1=)EMM
; cm1=(2
; cm1=)NOEMM
; cm1=(3
; cm1=)HIMEM1
; cm1=(4
; cm1=)HIMEM2
; cm1=(5
; cm1=)
; cm1=(6
; cm1=)
; cm1=(7
; cm1=)
; cm1=(8
; cm1=)
; cm1=(9
; cm1=)
; cm1=[end]
; cm0=[end]
隐含菜单如果用于0级可显示菜单,则应为cm0=(。
如果是用于某1级菜单,则应位于该1级菜单的上级菜单结束符cm0=]之间。
你的1级隐含菜单不属于任何0级菜单。
”隐含菜单的结束也用cm1=[end]这种形式感觉怪怪的,如果是cm1=(end)就好了。“
应为大多数1级菜单都有可显示菜单,所以只使用cm1=[end]结束,而你没有可显示菜单,却有隐含菜单,所以只能使用cm1=[end]结束。那么如果你从0级菜单选择了这1级菜单,屏幕显示什么?
[ Last edited by yaya on 2009-11-14 at 14:57 ]
|
|
2009-11-14 14:38 |
|
|
xsaxy
初级用户
积分 32
发帖 15
注册 2007-1-14
状态 离线
|
『第
13 楼』:
yaya,谢谢你的答复!
你的解释我已基本明白,回头我测试一下,这个我想我可以解决和弄明白。我用隐含菜单的意思是要在子菜单中相互调用隐含菜单中的配置。也就是想让隐含菜单起到块的作用。
现在主要的问题是,不要隐含菜单都无法继续增加子菜单。将隐含菜单删除,往里面增加子菜单,多增加几项(一楼的菜单每一项子菜单增加不会超过5-7项)也就开始报错了,报错的内容同一楼一样超限。所以就无法继续下去了。
再次谢谢你。
|
|
2009-11-14 15:55 |
|
|
xsaxy
初级用户
积分 32
发帖 15
注册 2007-1-14
状态 离线
|
『第
14 楼』:
在贴一个报错的配置,注意cm=[d. 测试菜单0 d... 下的 cm1=[j. 子菜单增加报错,删除正常,这就是我说的问题。
----------------------------------------------------------
device=himem.sys
device=acios.exe
device=ConfigS.Mnu /s
; cm0=[a. 测试菜单0 a...
; color=03,f
; default=a,60
; initial=14
; caption=
; caption=
; caption= DOS工具盘中文菜单
; caption= ===================================================
; endnote= 按↑↓或相应字母选择菜单项;'-/+'为复选菜单,按回车选择/清除
; endnote= 在单选菜单按回车确定;按E^sc返回0级菜单
; endnote=
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[g.
; cm1=]1g
; cm1=[h.
; cm1=]1h
; cm1=[i.
; cm1=]1i
; cm1=[j.
; cm1=]1j
; cm1=[k.
; cm1=]1k
; cm1=[l.
; cm1=]1l
; cm1=[m.
; cm1=]1m
; cm1=[end]
; cm0=]a
; cm0=[b. 测试菜单0 b...
; cm1=[a. 测试菜单1 a
; cm1=]1a
; cm1=[b. 测试菜单1 b...
; cm2=[a. 测试菜单1 a
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[c.
; cm2=]2c
; cm2=[d.
; cm2=]2d
; cm2=[e.
; cm2=]2e
; cm2=[f.
; cm2=]2f
; cm2=[g.
; cm2=]2g
; cm2=[h.
; cm2=]2h
; cm2=[end]
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[end]
; cm0=]b
; cm0=[c. 测试菜单0 c...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[g.
; cm1=]1g
; cm1=[h.
; cm1=]1h
; cm1=[i.
; cm1=]1i
; cm1=[j.
; cm1=]1j
; cm1=[k.
; cm1=]1k
; cm1=[l.
; cm1=]1l
; cm1=[m.
; cm1=]1m
; cm1=[n.
; cm1=]1n
; cm1=[o.
; cm1=]1o
; cm1=[p.
; cm1=]1p
; cm1=[end]
; cm0=]c
; cm0=[d. 测试菜单0 d...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[g.
; cm1=]1g
; cm1=[h.
; cm1=]1h
; cm1=[i.
; cm1=]1i
; cm1=[j.
; cm1=]1j
; cm1=[end]
; cm0=]d
; cm0=[e. 测试菜单0 e...
; cm1=[a.测试菜单1 a...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[end]
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[end]
; cm0=]e
; cm0=[f. 测试菜单0 f...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[end]
; cm0=]f
; cm0=[g. 测试菜单0 g...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[g.
; cm1=]1g
; cm1=[h.
; cm1=]1h
; cm1=[i.
; cm1=]1i
; cm1=[end]
; cm0=]g
; cm0=[h. 测试菜单0 h...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[g.
; cm1=]1g
; cm1=[h.
; cm1=]1h
; cm1=[end]
; cm0=]h
; cm0=[i. 测试菜单0 i...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[end]
; cm0=]i
; cm0=[j. 测试菜单0 j...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[f.
; cm1=]1f
; cm1=[end]
; cm0=]j
; cm0=[k. 测试菜单0 k...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[end]
; cm0=]k
; cm0=[l. 测试菜单0 l...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[e.
; cm1=]1e
; cm1=[end]
; cm0=]l
; cm0=[m. 测试菜单0 m...
; cm1=[a.
; cm1=]1a
; cm1=[b.
; cm1=]1b
; cm1=[c.
; cm1=]1c
; cm1=[d.
; cm1=]1d
; cm1=[end]
; cm0=]m
; cm0=[n. 测试菜单0 n...
; cm1=[a. 测试菜单1 a...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[end]
; cm1=]1a
; cm1=[b. 测试菜单1 b...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[end]
; cm1=]1b
; cm1=[c. 测试菜单1 c...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[end]
; cm1=]1c
; cm1=[d. 测试菜单1 d...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[c.
; cm2=]2c
; cm2=[d.
; cm2=]2d
; cm2=[e.
; cm2=]2e
; cm2=[f.
; cm2=]
; cm2=[end]
; cm1=]1d
; cm1=[e. 测试菜单1 e...
; cm2=[a.
; cm2=]2a
; cm2=[b.
; cm2=]2b
; cm2=[end]
; cm1=]1e
; cm1=[f. 测试菜单1 f
; cm1=]1f
; cm1=[end]
; cm0=]n
; cm0=[o. 测试菜单0 o...
; cm0=]0o
; cm0=[p. 测试菜单0 p...
; cm0=]0p
; cm0=[end]
device=ConfigS.Mnu /u
|
|
2009-11-14 17:06 |
|
|
yaya
银牌会员
积分 1009
发帖 353
注册 2003-9-4
状态 离线
|
『第
15 楼』:
可能是你的文件比较大。原程序只搜索0x1000字节。请你使用winhex或其他16位编辑器,打开ConfigS.Mnu,将0x1202处的'10'修改为'20',然后试一试。
|
|
2009-11-15 09:25 |
|