2010xiazai 发表于 2014-11-20 16:04:29

修改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:33

pause --wait=5 && set /A keyt=*0x4CB00
红色字体的就是你想修改的等待时间,可以随便改。

2012zhd 发表于 2014-11-20 16:38:24

这个糊涂大侠在行,你可以去请教他。
另请问一下,你下载的是0pe1.4.9是0908还是0808,我用的0908F6串接菜单后无法转run启动。

2010xiazai 发表于 2014-11-20 19:39:53

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:08

天使的魔翼 发表于 2014-11-20 16:35
pause --wait=5 && set /A keyt=*0x4CB00
红色字体的就是你想修改的等待时间,可以随便改。

你看清楚我说的问题了吗,我说把红色的两行代码,修改成timeout 20 后,根本就不等待20秒,直接就启动了。

nullren 发表于 2014-11-21 19:04:12

你不要改两行,只改一行,改成9,一位数,是可以的。

2010xiazai 发表于 2014-11-21 22:06:10

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:18

2010xiazai 发表于 2014-11-20 19:41
你看清楚我说的问题了吗,我说把红色的两行代码,修改成timeout 20 后,根本就不等待20秒,直接就启动了 ...

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

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

2010xiazai 发表于 2014-11-24 08:33:21

cchessbd 发表于 2014-11-24 08:09
我觉得楼主可能是要启动就进入主菜单,等待时间为20s

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

对,就是等待20S,这个时候按什么键字都可以不响应,只能等待,
然后20S到了,直接进入主菜单。

nullren 发表于 2014-11-25 19:42:54

本帖最后由 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,不管按什么键,都没用)
ifNOT exist keyt commandline 这行的意思是:如果没有按键,就跳到命令行不出菜单,你改一下。
把这个改一下,改成
IF NOT EXIST KEYT (就出菜单,叫什么名字,你自已在这个脚本里找)

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


试试吧

nullren 发表于 2014-11-25 23:02:02

ifNOT 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:45

nullren 发表于 2014-11-25 23:02
ifNOT exist keyt commandline
这个表示,没有输入就跳到脚本执行,不出菜单。
你也可以找到 菜单 的那 ...

啊,,,高手,,,
历害,谢谢你。

cchessbd 发表于 2014-11-26 17:19:40

本帖最后由 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的菜单跳转了
页: [1]
查看完整版本: 修改OPE启动菜单的等时间失败,求高手帮帮忙。