无忧启动论坛

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

[发布] 增强 GRUB4DOS 菜单编辑功能,支持动画,支持精简字库,支持图形菜单

    [复制链接]
61#
 楼主| 发表于 2018-2-20 11:22:50 | 显示全部楼层
增强菜单项目脚本处理。比如可使用  goto :label
回复

使用道具 举报

62#
 楼主| 发表于 2018-3-15 08:40:48 | 显示全部楼层
2018-03-15  增强 setmenu --string 函数功能
   --string=[X]=[-]Y=COLOR="STRING"
    没有X, 表示水平居中.
    -Y表示从菜单底部计数.  -0就是最后一行.
回复

使用道具 举报

63#
 楼主| 发表于 2018-6-12 09:10:08 | 显示全部楼层
1. 增加 beep 函数,播放音乐。
2. 改善图像透明背景的算法。
3. 修改 grub_memmove 函数,提高运算速度。
4. 修正 map 函数中碎片映射的错误。
回复

使用道具 举报

64#
 楼主| 发表于 2018-7-14 14:02:23 | 显示全部楼层
增加 setmenu --triangle-on --triangle-off 参数,打开/关闭菜单三角形指示器。默认打开。
增加 setmenu --middle-align 参数。菜单项目及菜单项目帮助居中。
回复

使用道具 举报

65#
 楼主| 发表于 2018-7-19 14:49:21 来自手机 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2018-7-19 15:40 编辑

把所有的持续时间同比例增大。

音高与频率的关系,上网查一查"音高频率对照表"。
简单的一个:
按C调来说,是这样:
do=262HZ
re=294HZ
mi=330HZ
fa=349HZ
so=392HZ
la=440HZ
xi=494HZ
高音(八度)是频率高一倍,低八度是频率低一半.
回复

使用道具 举报

66#
 楼主| 发表于 2018-7-27 18:03:17 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2018-7-27 18:08 编辑

1.
title beep
!BAT
beep --start 330 600 330 300 392 300 440 300 522 300 522 300 440 300 392 600 393 300 440 300 392 1200
beep --mid 392 600 392 600 392 600 330 300 392 300 440 600 440 600 392 1200
beep --mid 330 600 293 300 330 300 392 600 330 300 293 300 261 600 261 300 293 300 261 1200
beep --mid 330 300 293 300 261 300 330 300 293 900 330 300 392 600 440 300 522 300 392 1200
beep --mid 293 600 330 300 392 300 293 300 330 300 261 300 220 300 196 1200
beep --end --loop=255 220 600 220 300 261 300 293 900 330 300 261 300 293 300 261 300 220 300 196 1800

2. 此函数可以和write 0x8274 0x2e01并用。效果就是那样。

如果觉得不美观,就不要write 0x8274 0x2e01。
也可以自己加序号,如:
1. asdff
2. zxcvbn
但是这样数字序号不在一列。
回复

使用道具 举报

67#
 楼主| 发表于 2018-8-1 18:34:43 来自手机 | 显示全部楼层
菜单滞留时间不长,显示日期时间有什么必要性?
回复

使用道具 举报

68#
 楼主| 发表于 2018-8-22 09:31:15 | 显示全部楼层
增加 setmenu --auto-num-all-on 参数。
  给所有标题编号。(--auto-num-on 参数仅给引导标题编号)
  注释:0x8274 00/01/02=禁止自动编号/仅给引导标题编号/给所有标题编号
        0x8275 标题编号与标题内容之间的字符。如:0x20=' '   0x2d='-'
        0x8276 返回当前标题编号。(按所有标题计)
回复

使用道具 举报

69#
 楼主| 发表于 2019-2-28 12:34:57 来自手机 | 显示全部楼层
可以考虑。
回复

使用道具 举报

70#
 楼主| 发表于 2019-3-3 11:15:28 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2019-3-16 16:14 编辑
楼主,提个关于图形菜单的需求,看能不能与iftitle配合工作
即根据条件显示对应的菜单图形


Re bfgxp:
iftitle 函数现在可以支持图形菜单,请测试。
如果成功,方便的话,上传一个包含图形菜单的img。



点评

yaya! 经过几天的修图与测试,发现两个问题 1.物理上的最后一个菜单绘制缓慢,临时解决办法,多做一个菜单,使条件不成立而不显示 2.菜单数不是设置显示数量的整数倍,则最后该留空的部分,没有清空  详情 回复 发表于 2019-3-11 09:10
感谢yaya,初步测试可行,正在p图形菜单,做好后放出来  详情 回复 发表于 2019-3-4 08:55
回复

使用道具 举报

71#
 楼主| 发表于 2019-3-12 12:18:39 来自手机 | 显示全部楼层
我在FbinstTool.exe1.7测试,最后一行也慢。但是导出文件到.img,在虚拟机测试正常。可见问题不在grldr,比较诡异。
回复

使用道具 举报

72#
 楼主| 发表于 2019-3-14 15:38:02 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2019-3-16 16:15 编辑
菜单数不是设置显示数量的整数倍,则最后该留空的部分,没有清空

已经处理

目前选中菜单可实现选中前景高亮、前景反色、高亮边框、背景高亮。
你可以试一试类型: 0x08 或 0x88

实现图片与文字混合显示太麻烦。不宜居中对齐。且图像大文字小也不好看。
回复

使用道具 举报

73#
 楼主| 发表于 2019-3-15 11:57:13 来自手机 | 显示全部楼层
什么工具?
回复

使用道具 举报

74#
 楼主| 发表于 2019-3-16 16:19:54 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2019-3-20 21:26 编辑
能否实现图片与文字混合显示,即文字菜单前多一个小小的图标就行了。

图文混排已经实现,请测试。
最好字体大一点,图像高与字体高一样。
测试时菜单框宽一些,要容纳下图像与项目字符。

点评

图文混合的几个问题 1.背景不透明了 2.习惯图形使用0x18与文字使用setmenu --highlight-full的形式,但这样图形部分背景色刚好是文字部分的前景色,不统一和谐 3.加载40X40字体后,显示异常,该有的行间距没有了  详情 回复 发表于 2019-3-18 16:19
万能的yaya,太好了,周末都这么拼,下周一我测试效果。  详情 回复 发表于 2019-3-17 04:57
回复

使用道具 举报

75#
 楼主| 发表于 2019-3-16 19:47:48 来自手机 | 显示全部楼层
类型0x10
回复

使用道具 举报

76#
 楼主| 发表于 2019-3-20 21:24:45 | 显示全部楼层
1.背景不透明了

类型设置为0x9n。

图文混排时,图形与文本的选中项(高亮项)设置,是各种独立的,可以单独设置。
如果高亮只需要通过文本实现,图形类型可设置为0x90.

图形类型:
位0:前景高亮    位1:前景色翻转    位2:图形加框    位3:背景高亮   位4:图文混排     位7:背景透明

文本高亮模式与以前一致。

.加载40X40字体后,显示异常,该有的行间距没有了

是图形间距没有起作用,已经修正。

图文混排,是在文本模式下,以他的既定行列而排列。如果字符的行间距为零,图形的间距为零,在图形高=字符高时,就没有间隙l。
这时增加一点图形间距,就可以隔一行显示了。因此图形间距在图文混排模式,不能实现随意调整。
要想实现间距随意调整,可以使用增加字符间距实现。(setmenu --font-spacing=0:n)

grldr.rar

164.83 KB, 下载次数: 52, 下载积分: 无忧币 -2

回复

使用道具 举报

77#
 楼主| 发表于 2019-3-22 08:57:36 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2019-3-22 09:06 编辑

网上找到的方法,没有测试,你可以试一试。
configfile (md)4+8
write 0x307ff8 1  && configfile
configfile (md)0x880+0x200
chainloader (ud)/grldr
chainloader /grldr

返回外置菜单可以使用:
configfile /menu.lst
回复

使用道具 举报

78#
 楼主| 发表于 2019-3-25 15:49:53 | 显示全部楼层
条件菜单项目(iftitle )支持图形菜单。
图形菜单改进:支持背景高亮、支持图文混排。
回复

使用道具 举报

79#
 楼主| 发表于 2019-5-12 16:43:59 来自手机 | 显示全部楼层
打开iso或者img文件,期中有图像文件jpg或者bmp。
回复

使用道具 举报

80#
 楼主| 发表于 2019-8-1 10:45:18 | 显示全部楼层
菜单动态更新日期时间。
setmenu --string=x=y=color="date&time"

点评

能不能加个开关禁用B、C、E键  详情 回复 发表于 2019-8-2 08:54
回复

使用道具 举报

81#
 楼主| 发表于 2019-10-30 19:00:20 来自手机 | 显示全部楼层
我看看你的图,文件发上来。

点评

附件有2张BMP,模糊的可以透明,清晰的不能。  详情 回复 发表于 2019-10-30 22:04
回复

使用道具 举报

82#
 楼主| 发表于 2019-10-31 10:09:25 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2019-10-31 10:10 编辑

背景色不干净导致的问题。你使用 WinHex 打开这 2 张图,开始和结尾,ok 的一张全是 0,err 的一张,是 0x22, 0x23, 0x12 等等。

换一个图像转换软件试一试。
回复

使用道具 举报

83#
 楼主| 发表于 2019-11-1 19:42:48 来自手机 | 显示全部楼层
0000-ffff范围的unicode 16字符。
回复

使用道具 举报

84#
 楼主| 发表于 2021-2-8 11:12:41 来自手机 | 显示全部楼层
--box l=0
回复

使用道具 举报

85#
 楼主| 发表于 2021-3-25 12:37:14 来自手机 | 显示全部楼层
不能。目前只是实现了启动阶段由蜂鸣器播放音乐。但是声音不可控。

点评

嗯,以后有没有希望,支持增加背景音乐呢?  详情 回复 发表于 2021-3-25 21:14
回复

使用道具 举报

86#
 楼主| 发表于 2021-3-30 12:36:57 来自手机 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2021-3-30 12:39 编辑

grub4dos for uefi 带热键功能。菜单设置请使用内部命令,外部命令已经不兼容。

点评

g4d for bios的带不带,怎么启用?  详情 回复 发表于 2021-3-30 18:01
回复

使用道具 举报

87#
 楼主| 发表于 2021-3-30 20:05:09 来自手机 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2021-3-31 09:24 编辑

bios版本不带内部热键。uefi版本带内部热键。内部热键用法是:
setmenu --hotkey 参数
其他和热键以前的外部命令一样。

uefi版本判断32/64的方法:
calc *0x8272&0xff | set ver=
使用变量ver判断32/64.

点评

怪了,菜单中加 calc *0x8272&0xff | set arch= if /i "%arch%"=="64 (HEX:0x40)" set IA=x64 || set IA=ia32 怎么arch总是没赋值?IA永远ia32 但放到命令行状态执行又没问题 [attachimg]477554[/attachimg]  详情 回复 发表于 2021-3-31 12:29
既然可以自动编号了,实际上热键也没必要,把菜单都改成无热键形式算了  详情 回复 发表于 2021-3-31 10:31
回复

使用道具 举报

88#
 楼主| 发表于 2021-3-31 14:36:38 | 显示全部楼层
calc *0x8272&0xff | set /a arch=
if /i "%arch%"=="64" set IA=x64 || set IA=ia32

点评

arch变成零了  详情 回复 发表于 2021-3-31 14:58
哦,好久没用,生疏了  详情 回复 发表于 2021-3-31 14:49
回复

使用道具 举报

89#
 楼主| 发表于 2021-3-31 15:29:26 | 显示全部楼层
批处理我也不熟悉。

calc *0x8272&0xff > nul ;; set arch=%@retval%
if /i "%arch%"=="64" set IA=x64 || set IA=ia32

点评

运行后,PE与arch都是0,难道只支持两个变量吗?  详情 回复 发表于 2021-4-2 06:27
回复

使用道具 举报

90#
 楼主| 发表于 2021-4-2 07:00:18 来自手机 | 显示全部楼层
设置arch变量后,使用echo %arch%查看一下,看看是什么值。

点评

只运行这三个,后面都不运行,最后一个是空的  详情 回复 发表于 2021-4-2 07:34
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-8 16:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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