无忧启动论坛

标题: 修改OPE启动菜单的等时间失败,求高手帮帮忙。 [打印本页]

作者: 2010xiazai    时间: 2014-11-20 16:04
标题: 修改OPE启动菜单的等时间失败,求高手帮帮忙。
因为我的显示延迟时间长,当显示还没显示的画面的时候,OPE的启动菜单已经默认开始了。所以想自己修改下。

以下是我用FbinstTool工具打开grldr后的前部分代码。
if not exist showmenu set showmenu=0
terminal console
echo This is 0PE by pseudo && debug off
font

write 0x60368 0
checkrange 0x80 read 0x8280 && write 0x60368 1
if "%?_BOOT:~1,3%"=="hd0" write 0x60368 1
find --devices=u && checkrange 0x80 calc *0x82B9&0xff && write 0x60368 1
terminal graphics
graphicsmode -1 640
checkrange 20130419:-1 read 0x8278 || clear && echo Need grub4dos-0.4.6a-2013-04-19 or above. && pause 您用了旧版grub4dos。此PE强加限制:须用0.4.6a-2013-04-19以上版本。 && reboot
echo -e \n\n5秒内按键有花样:
echo -e \n\t<回车键>——显/隐菜单切换(有菜单强,无菜单快)\n\t<空格键>——较多组件载入内存(可拔U盘,可插3.0口)\n\t<Esc 键>——grub4dos-0.4.6a命令行\n

此处是原来的代码
set keyt=
pause --wait=5 && set /A keyt=*0x4CB00
到此为止  ,我将这两行代码取消,用timeout 20代替。

if not exist keyt commandline
debug off
set mapmem=
if /i "%keyt%"=="0x20" set mapmem=1

我将红字的两行代码换成了timeout   20 为什么在OPE刚开始启动的时候并没有等待20秒,而直接就开始启动并进入下一步了呢?
如果要想在刚开始启动的时候等待想要等待的时间,怎么设置。最好在等待时间内,按任何键字都不响应,只有等待时间结束后才能开始操作。如何实现 。
作者: 天使的魔翼    时间: 2014-11-20 16:35
pause --wait=5 && set /A keyt=*0x4CB00
红色字体的就是你想修改的等待时间,可以随便改。
作者: 2012zhd    时间: 2014-11-20 16:38
这个糊涂大侠在行,你可以去请教他。
另请问一下,你下载的是0pe1.4.9是0908还是0808,我用的0908F6串接菜单后无法转run启动。
作者: 2010xiazai    时间: 2014-11-20 19:39
2012zhd 发表于 2014-11-20 16:38
这个糊涂大侠在行,你可以去请教他。
另请问一下,你下载的是0pe1.4.9是0908还是0808,我用的0908F6串接菜 ...

我用的是1.4.9的0908的,先F6后转SRUN吧,不是RUN。我的是SRUN。可以转啊。
作者: 2010xiazai    时间: 2014-11-20 19:41
天使的魔翼 发表于 2014-11-20 16:35
pause --wait=5 && set /A keyt=*0x4CB00
红色字体的就是你想修改的等待时间,可以随便改。

你看清楚我说的问题了吗,我说把红色的两行代码,修改成timeout 20 后,根本就不等待20秒,直接就启动了。
作者: nullren    时间: 2014-11-21 19:04
你不要改两行,只改一行,改成9,一位数,是可以的。
作者: 2010xiazai    时间: 2014-11-21 22:06
nullren 发表于 2014-11-21 19:04
你不要改两行,只改一行,改成9,一位数,是可以的。

你的意思是这样修改吗,

set keyt=
pause --wait=5 && set /A keyt=*0x4CB00

把set keyt= 这行
改成
timeout 9
就可以了是吗?
我修改成这样并没有等待9秒
作者: cchessbd    时间: 2014-11-24 08:09
2010xiazai 发表于 2014-11-20 19:41
你看清楚我说的问题了吗,我说把红色的两行代码,修改成timeout 20 后,根本就不等待20秒,直接就启动了 ...

我觉得楼主可能是要启动就进入主菜单,等待时间为20s

而不需要按键进入。是这个意思吗?
作者: 2010xiazai    时间: 2014-11-24 08:33
cchessbd 发表于 2014-11-24 08:09
我觉得楼主可能是要启动就进入主菜单,等待时间为20s

而不需要按键进入。是这个意思吗?

对,就是等待20S,这个时候按什么键字都可以不响应,只能等待,
然后20S到了,直接进入主菜单。
作者: nullren    时间: 2014-11-25 19:42
本帖最后由 nullren 于 2014-11-25 21:15 编辑

echo -e \n\n5秒内按键有花样:
echo -e \n\t<回车键>——显/隐菜单切换(有菜单强,无菜单快)\n\t<空格键>——较多组件载入内存(可拔U盘,可插3.0口)\n\t<Esc 键>——grub4dos-0.4.6a命令行\n

set keyt=
pause --wait=5 && set /A keyt=*0x4CB00
if not exist keyt commandline
。。。。

改成这样:

echo -e \n\n老老实实等二十秒,不要问为什么:
echo -e \n\t<回车键>——显/隐菜单切换(有菜单强,无菜单快)\n\t<空格键>——较多组件载入内存(可拔U盘,可插3.0口)\n\t<Esc 键>——grub4dos-0.4.6a命令行\n

set keyt=
pause --wait=20 && set /A keyt=*0x4FFFF
(改成了FFFF,不管按什么键,都没用)
if  NOT exist keyt commandline 这行的意思是:如果没有按键,就跳到命令行不出菜单,你改一下。
把这个改一下,改成
IF NOT EXIST KEYT (就出菜单,叫什么名字,你自已在这个脚本里找)

好,后面就要改判断语句的地方,就是改成
如果按了键,也跳到菜单
因为你没有写全后面的语句,我就不你改了
......


试试吧
作者: nullren    时间: 2014-11-25 23:02
if  NOT exist keyt commandline
这个表示,没有输入就跳到脚本执行,不出菜单。
你也可以找到 菜单 的那个代码,例如  menu

然后把 MENU 改成 commandline ,同时原来的 commandline 改成 MENU
把 pause --wait=5 && set /A keyt=*0x4CB00 改成  pause --wait=20 && set /A keyt=*0x4FFFF

其它的全都不要动,这样就可以按任意键都没用,死等二十秒默认进菜单的。


作者: 2010xiazai    时间: 2014-11-26 10:52
nullren 发表于 2014-11-25 23:02
if  NOT exist keyt commandline
这个表示,没有输入就跳到脚本执行,不出菜单。
你也可以找到 菜单 的那 ...

啊,,,高手,,,
历害,谢谢你。
作者: cchessbd    时间: 2014-11-26 17:19
本帖最后由 cchessbd 于 2014-11-26 17:20 编辑
nullren 发表于 2014-11-25 19:42
echo -e \n\n5秒内按键有花样:
echo -e \n\t——显/隐菜单切换(有菜单强,无菜单快)\n\t——较多组件载 ...


我觉得这样改是不对的,只上关键部分。
第一步:这样改
。。。
set keyt=
pause --wait=5 && set /A keyt=*0x4CB00
echo %keyt%
echo 123456
pause
。。。

改好后在主菜单按回车键,得出123456上面的值 AB,拿笔记下来

第二步改成这样就可以了:
。。。
set keyt=AB
pause --wait=20
if not exist keyt commandline
。。。

这样就满足0PE的菜单跳转了





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