无忧启动论坛

标题: 关于调用子菜单的问题 [打印本页]

作者: kellllby    时间: 2016-3-11 19:17
标题: 关于调用子菜单的问题
本帖最后由 kellllby 于 2016-3-13 11:57 编辑

想做一个多PE及多系统安装镜像的两个子菜单,如pe.lst, win.lst 从主菜单加载pe.lst(背景图片跟主菜单不一样的)configfile /BOOT/pe.lst
,能加载成功,但问题是子菜单中还有主菜单的图片的拖影,然后从子菜单返回主菜单configfile /menu.lst 然后是很严重的两幅图片夹杂拖影,再重复几次这操作后,基本上就看不清菜单了,已在虚拟机和实体机测试,问题一样,不知道有没有碰到过这个情况的朋友,希望给个提示。目前还没研究到BCD和破解bootmgr这个层次。

子菜单返回主菜单中我改用configfile (md)4+8,但还是停留在子菜单页面,不过菜单全部变成乱码,且菜单数变多了,不知怎么回事,好像加载了PE镜像中的LST。


  1. #以下主菜单项

  2. title 运行PE微型系统\n 根据电脑配置选择合适的PE版本
  3. configfile /BOOT/PE.lst

  4. title 安装windows操作系统\n 选择合适win版本进行安装
  5. configfile /BOOT/WIN.lst

  6. title 运行DOS工具箱 \n 您将进入DOS命令行状态
  7. map /BritneyLZMA/mydos.img (fd0)
  8. map --hook
  9. chainloader (fd0)+1
  10. rootnoverify (fd0)

  11. title 启动本机系统 \n 直接引导进入本机已安装的系统
  12. find --set-root /bootmgr
  13. chainloader /bootmgr


  14. title 重启计算机 \n 重新电脑
  15. reboot

  16. title 关闭计算机 \n 切断电源
  17. halt
复制代码

  1. #以下为子菜单项

  2. title 运行2003内核PE\n 针对配置较老的电脑机型
  3. find --set-root /BOOT/win2003pe.iso
  4. map --mem /BOOT/win2003pe.iso (0xff)
  5. map --hook
  6. chainloader (0xff)

  7. title 运行win8内核PE\n 针对配置较新的电脑机型
  8. find --set-root /BOOT/win8pe.iso
  9. map --mem /BOOT/win8pe.iso (0xff)
  10. map --hook
  11. chainloader (0xff)

  12. title 返回主菜单 \n 返回到初始菜单页面
  13. configfile /menu.lst


复制代码




QQ截图20160311191654.png (215.46 KB, 下载次数: 204)

QQ截图20160311191654.png

作者: kellllby    时间: 2016-3-11 21:34
自己顶一下,这个需要改内置菜单吗,我看说明文件中关于configfile (md)4+8的介绍,“作用是会重新加载一次内置菜单,可作为进入二级或三级或任意菜单后返回主菜单之用。”,我的显示图片拖影是不是可能内存没初始化引起的,这个configfile (md)4+8会重新加载一次内置菜单,等于一次初始化,关键是返回时没加载主菜单lst,问题应该就出在内置菜单中了,怎么修改呢,望大神临幸/哈哈
作者: zengqcyxx    时间: 2016-3-11 21:53
一级菜单及启动用G4D,二级菜单用GRUB试试吧!
一级grldr+message。一级菜单写入grldr里,图片写入message里。
二级menu.lst+splash.bmp.gz+unifont.hex.gz。二级菜单写入menu.lst,图片写入splash.bmp.gz。
作者: fuldho    时间: 2016-3-12 04:38
你没有贴出完整菜单,但我猜想一下:

graphicsmode -1  xxx

vbe图形模式加载只能在主菜单执行一次。
作者: kellllby    时间: 2016-3-12 06:56
zengqcyxx 发表于 2016-3-11 21:53
一级菜单及启动用G4D,二级菜单用GRUB试试吧!
一级grldr+message。一级菜单写入grldr里,图片写入message ...

message还不会编写,有范例吗
作者: kellllby    时间: 2016-3-12 06:58
fuldho 发表于 2016-3-12 04:38
你没有贴出完整菜单,但我猜想一下:

graphicsmode -1  xxx

我子菜单背景加载模式同主菜单一样,难道是这个出问题了吗?那子菜单具体怎么改呢
作者: 不点    时间: 2016-3-12 09:42
可以试试不带参数的 splashimage 命令,这个应该可以清除背景图片(使其成为全黑的背景)。然后再加载背景图片,应该就可以了。


作者: kellllby    时间: 2016-3-12 11:53
不点 发表于 2016-3-12 09:42
可以试试不带参数的 splashimage 命令,这个应该可以清除背景图片(使其成为全黑的背景)。然后再加载背景 ...

好的,我试试
作者: 不点    时间: 2016-3-12 15:07
kellllby 发表于 2016-3-12 11:53
好的,我试试

万一这条不带参数的 splashimage 命令不能清除掉背景,你可以向开发者报告 bug。
作者: kellllby    时间: 2016-3-12 17:26
不点 发表于 2016-3-12 15:07
万一这条不带参数的 splashimage 命令不能清除掉背景,你可以向开发者报告 bug。

回复不点大师,我刚又测试了,还是这种情况

QQ截图20160312172436.png (350.49 KB, 下载次数: 192)

QQ截图20160312172436.png

作者: kellllby    时间: 2016-3-12 17:38
kellllby 发表于 2016-3-12 17:26
回复不点大师,我刚又测试了,还是这种情况

我试着排除图片加载问题LST里只用这graphicsmode -1 100:1000  100:1000  24:32这一句,加载背景全取消了,采取纯黑背景测试,结果也发现错格。

26.png (10.36 KB, 下载次数: 192)

26.png

作者: 不点    时间: 2016-3-12 17:58
kellllby 发表于 2016-3-12 17:26
回复不点大师,我刚又测试了,还是这种情况

这看来是 bug,等着 yaya 来解决吧。

不过,你可以试试 0.4.5c 的版本,看看是否存在同样的 bug。试验 0.4.5c 的目的是帮助开发者确定造成 bug 的技术原因。
作者: 2011yaya2007777    时间: 2016-3-12 18:05
既然是图像问题,却不在这里贴出主菜单、子菜单是怎么加载图像的!

作者: fuldho    时间: 2016-3-12 18:31
主菜单加载图形模式
graphicsmode -1 100:1000  100:1000  24:32
加载图片
splashimage /lt.jpg

子菜单直接加载图片

splashimage /back.jpg

没发现任何问题
作者: kellllby    时间: 2016-3-12 18:33
fuldho 发表于 2016-3-12 18:31
主菜单加载图形模式
graphicsmode -1 100:1000  100:1000  24:32
加载图片

子菜单是不用加载图形模式吗?我再测试一下
作者: kellllby    时间: 2016-3-12 18:52
2011yaya2007777 发表于 2016-3-12 18:05
既然是图像问题,却不在这里贴出主菜单、子菜单是怎么加载图像的!

刚才按老年痴呆的试了一下,也下载了3月10的版本替换了一遍,问题依旧,我把Lst传上来吧,我也搞清楚是什么原因。贴上刚才测试的画面,是从子菜单返回主菜单时的画面。

主菜单Lst

  1. # 默认延迟时间(秒)
  2. timeout 30

  3. # 第一项为默认值
  4. default 0

  5. # 设置图形模式为vbe模式和加载背景图片(VBE模式支持24位高清图)
  6. graphicsmode -1 100:1000  100:1000  24:32
  7. splashimage /BOOT/6666.jpg

  8. # 加载中文字体
  9. font /unifont.hex.gz

  10. #设置底部信息的文字显示为中文还是英文(zh为中文,en为英文)
  11. setmenu   --lang=zh

  12. #是否显示版本信息(一般在菜单框顶部,on是显示,off不显示)
  13. setmenu --ver-off  

  14. #设置菜单未选中时的颜色及菜单被选中后的颜色
  15. color normal=0xFFFF00 highlight=0xFF0099

  16. #设置菜单顶部文字信息的颜色及底部信息的字体颜色
  17. color heading=0x000099 helptext=0xFFFFF

  18. #设置菜单字高与行距的比例(因为--font-spacing只能随string一起使用,故添加一空行)
  19. setmenu  --font-spacing=1:14  --string=33=1=="          "

  20. #设置菜单边框
  21. setmenu   --box x=16 w=0 y=3 h=6 l=0

  22. #设置菜单是否自动编号(on为自动在每行菜单前加上数字编号,从0开始,off为关闭自动编号)
  23. setmenu  --auto-num-off

  24. #设置菜单对齐方式(left左对齐,right右对齐,默认左对齐)
  25. setmenu  --left-align

  26. #添加菜单被选中后下方的提示信息
  27. setmenu  --help=4=0=10

  28. #设置菜单提示信息与全局提示信息的位置关系(keyhelp=3表示全局信息与菜单提示相隔3行)
  29. setmenu  --keyhelp=3=0x000CC


  30. #以下为菜单项

  31. title 运行PE微型系统\n 根据电脑配置选择合适的PE版本
  32. configfile /BOOT/PE.lst

  33. title 安装windows操作系统\n 选择合适win版本进行安装
  34. configfile /BOOT/WIN.lst

  35. title 运行DOS工具箱 \n 您将进入DOS命令行状态
  36. map /BritneyLZMA/mydos.img (fd0)
  37. map --hook
  38. chainloader (fd0)+1
  39. rootnoverify (fd0)

  40. title 启动本机系统 \n 直接引导进入本机已安装的系统
  41. find --set-root /bootmgr
  42. chainloader /bootmgr


  43. title 重启计算机 \n 重新电脑
  44. reboot
复制代码



子菜单Lst:
  1. # 默认延迟时间(秒)
  2. timeout 30

  3. # 第一项为默认值
  4. default 0

  5. # 设置图形模式为vbe模式和加载背景图片(VBE模式支持24位高清图)
  6. splashimage /BOOT/5555.jpg

  7. # 加载中文字体
  8. font /unifont.hex.gz

  9. #设置底部信息的文字显示为中文还是英文(zh为中文,en为英文)
  10. setmenu   --lang=zh

  11. #是否显示版本信息(一般在菜单框顶部,on是显示,off不显示)
  12. setmenu --ver-off  

  13. #设置菜单未选中时的颜色及菜单被选中后的颜色
  14. color normal=0x006633 highlight=0xFF0099

  15. #设置菜单顶部文字信息的颜色及底部信息的字体颜色
  16. color heading=0x000099 helptext=0xFFFFF

  17. #设置菜单字高与行距的比例和添加标题栏
  18. setmenu  --font-spacing=1:14  --string=33=1=0x660066="波哥PE工具箱"
  19. setmenu  --font-spacing=1:14  --string=30=2=="=================="
  20. #设置菜单边框
  21. setmenu   --box x=31 w=0 y=4 h=3 l=0

  22. #设置菜单是否自动编号(on为自动在每行菜单前加上数字编号,从0开始,off为关闭自动编号)
  23. setmenu  --auto-num-off

  24. #设置菜单对齐方式(left左对齐,right右对齐,默认左对齐)
  25. setmenu  --left-align

  26. #添加菜单被选中后下方的提示信息
  27. setmenu  --help=0=0=9

  28. #设置菜单提示信息与全局提示信息的位置关系(keyhelp=3表示全局信息与菜单提示相隔3行)
  29. setmenu  --keyhelp=2=0x000CC

  30. #以下为菜单项

  31. title 运行2003内核PE\n 针对配置较老的电脑机型
  32. find --set-root /BOOT/win2003pe.iso
  33. map --mem /BOOT/win2003pe.iso (0xff)
  34. map --hook
  35. chainloader (0xff)

  36. title 运行win8内核PE\n 针对配置较新的电脑机型
  37. find --set-root /BOOT/win8pe.iso
  38. map --mem /BOOT/win8pe.iso (0xff)
  39. map --hook
  40. chainloader (0xff)

  41. title 返回主菜单 \n 返回到初始菜单页面
  42. configfile /menu.lst
复制代码


QQ截图20160312185157.png (460.48 KB, 下载次数: 186)

QQ截图20160312185157.png

作者: 2011yaya2007777    时间: 2016-3-12 21:13
主菜单画面正常? 子菜单画面正常? 返回主菜单画面小了?
作者: kellllby    时间: 2016-3-12 21:46
本帖最后由 kellllby 于 2016-3-12 21:48 编辑
2011yaya2007777 发表于 2016-3-12 21:13
主菜单画面正常? 子菜单画面正常? 返回主菜单画面小了?


主菜单画面正常,进入子菜单画面也正常,从子菜单返回主菜单画面就那样有叠影了,,上面图中你看到的是返回主菜单的画面,但画面大部分图片碎片是子菜单的图片,主菜单的图片被盖住了,只显示底下一点。
作者: fuldho    时间: 2016-3-13 09:01
本帖最后由 fuldho 于 2016-3-13 09:27 编辑
2011yaya2007777 发表于 2016-3-12 21:13
主菜单画面正常? 子菜单画面正常? 返回主菜单画面小了?


可能与他的显卡问题

主次菜单切换N次也没发现所描叙问题





视频为证

Video_2016-03-13_092435.rar (699.29 KB, 下载次数: 6)
作者: kellllby    时间: 2016-3-13 11:22
fuldho 发表于 2016-3-13 09:01
可能与他的显卡问题

主次菜单切换N次也没发现所描叙问题

根据你的背景,我猜测你的背景图片是800*600大小的,刚才我也专门拿了这个尺寸的图片测试了一下,也没出现问题,之前我测试的图片一个是1440*900的,一个是1024*768的,我不知道这是不是对图片大小的支持的问题,或许真是我电脑的问题,为此,我在虚拟机上专门安装了一个XP操作系统,完全在虚拟机内测试,结果也是一样,不知您有没有试过不同尺寸的图片。
作者: devilma    时间: 2016-3-13 11:42
估计是图片大小的问题……
作者: kellllby    时间: 2016-3-13 11:56
问题可以总结了,刚才又测试了800*600的JPG格式图片,支持很好,没出现以上问题,后来我又将1440*900和1024*768的JPG格式图片转为24位的bmp图片,替换下来测试也没出现任何问题,再替换上面两种尺寸的JPG图片,问题又依旧,我的结论是Grub4dos虽然支持了JPG格式图片,但对大图片的兼容性不太好,另外想到去测试800*600和BMP格式图片也是受到了“老年痴呆”的回复感示,但我有点想吐槽一下老年痴呆,一个普通用户使用时出现问题,作为技术人员首先应该想到的是去怀疑和排除作品自身的问题,包括会出现这种问题的种种可能,像刚才的背景问题,你怀疑过图片尺寸的影响吗,如果考虑过,但没测试,你怎么得出是显卡的问题的。
作者: kellllby    时间: 2016-3-13 11:59
devilma 发表于 2016-3-13 11:42
估计是图片大小的问题……

我想是的,现在转成了BMP,问题就解决了。
作者: fuldho    时间: 2016-3-13 12:30
本帖最后由 fuldho 于 2016-3-13 12:32 编辑
kellllby 发表于 2016-3-13 11:59
我想是的,现在转成了BMP,问题就解决了。


g4d 支持4:3格式
graphicsmode最大支持1024
graphicsmode -1 1024
与图片实际大小无关,最多是显示不全或黑色填充
但不会花屏

本人遇到过华硕板载显卡就有这种问题
作者: kellllby    时间: 2016-3-13 12:31
kellllby 发表于 2016-3-13 11:59
我想是的,现在转成了BMP,问题就解决了。

这样啊,谢谢,不过我换成BMP后就没出现那情况了,总之问题解决了,谢谢各位大佬们的帮助和提醒。
作者: 2011yaya2007777    时间: 2016-3-13 13:12
问题定位。是 jpg 图像显示问题。
在2张相同尺寸的图像之间切换,正常。否则失败。
什么原因目前还不清楚。
作者: kellllby    时间: 2016-3-13 14:33
2011yaya2007777 发表于 2016-3-13 13:12
问题定位。是 jpg 图像显示问题。
在2张相同尺寸的图像之间切换,正常。否则失败。
什么原因目前还不清楚 ...

是的,刚才还发现个情况,主菜单我用PS做的标题栏,所以没用setmenu  --font-spacing=1:8--string==4==""
子菜单中设置了标题栏,用了这句加了标题和装饰符号。从子菜单返回到主菜单后,主菜单画面上仍然存在子菜单中设置的那些标题文字和符号,其它一切正常。很奇怪,两张图片都是1024*768的BMP,YAYA老大有时间的话测测看。
作者: 不点    时间: 2016-3-13 14:49
fuldho 发表于 2016-3-13 12:30
g4d 支持4:3格式
graphicsmode最大支持1024
graphicsmode -1 1024

纠正一下,grub4dos 支持任何大小的分辨率,凡是主机的 bios 支持的分辨率,grub4dos 都支持。

具体到某台机器,其 bios 肯定只支持少数几个分辨率。因此,grub4dos 在这台机器上也只能支持这几个分辨率。

但不能得出结论说:grub4dos 在所有的电脑上都只能支持这几种分辨率。
作者: fuldho    时间: 2016-3-13 15:21
本帖最后由 fuldho 于 2016-3-13 15:23 编辑
不点 发表于 2016-3-13 14:49
纠正一下,grub4dos 支持任何大小的分辨率,凡是主机的 bios 支持的分辨率,grub4dos 都支持。

具体到 ...


在无驱状态下,测试没发现几款bios 可以支持1024以上
作者: 2011yaya2007777    时间: 2016-3-13 19:07
从子菜单返回到主菜单后,主菜单画面上仍然存在子菜单中设置的那些标题文字和符号

这没有什么奇怪的。子菜单可以不设置而保持主菜单格式。
如果不一样,可以在菜单设置第一条使用   setmenu  --u

这个应当解决了jpg图像问题。

grldr.rar

159.71 KB, 下载次数: 5, 下载积分: 无忧币 -2


作者: kellllby    时间: 2016-3-13 20:16
好的,辛苦了




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