无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 2010xiazai

[求助] 修改OPE启动菜单的等时间失败,求高手帮帮忙。

[复制链接]
发表于 2014-11-20 16:04:29 | 显示全部楼层 |阅读模式
因为我的显示延迟时间长,当显示还没显示的画面的时候,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秒,而直接就开始启动并进入下一步了呢?
如果要想在刚开始启动的时候等待想要等待的时间,怎么设置。最好在等待时间内,按任何键字都不响应,只有等待时间结束后才能开始操作。如何实现 。

点评

pause --wait=5 && set /A keyt=*0x4CB00 修改启动时间停留这在这儿,建议不要修改原内置菜单,0PE的G4D是P大原代码重新编译的;因此你想修改必须有很好的G4D高级应用基础。 如果想修改“等待20秒”可以直接修   发表于 2014-11-20 16:34
发表于 2014-11-20 16:35:33 | 显示全部楼层
pause --wait=5 && set /A keyt=*0x4CB00
红色字体的就是你想修改的等待时间,可以随便改。

点评

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

使用道具 举报

发表于 2014-11-20 16:38:24 | 显示全部楼层
这个糊涂大侠在行,你可以去请教他。
另请问一下,你下载的是0pe1.4.9是0908还是0808,我用的0908F6串接菜单后无法转run启动。

点评

我用的是1.4.9的0908的,先F6后转SRUN吧,不是RUN。我的是SRUN。可以转啊。  详情 回复 发表于 2014-11-20 19:39
回复

使用道具 举报

 楼主| 发表于 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。可以转啊。
回复

使用道具 举报

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

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

点评

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

使用道具 举报

发表于 2014-11-21 19:04:12 | 显示全部楼层
你不要改两行,只改一行,改成9,一位数,是可以的。

点评

你的意思是这样修改吗, set keyt= pause --wait=5 && set /A keyt=*0x4CB00 把set keyt= 这行 改成 timeout 9 就可以了是吗? 我修改成这样并没有等待9秒  详情 回复 发表于 2014-11-21 22:06
回复

使用道具 举报

 楼主| 发表于 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秒

点评

set keyt= pause --wait=5 && set /A keyt=*0x4CB00 改成: set keyt= pause --wait=9 && set /A keyt=*0x4CB00 这是百分百可以的。 再改成 set keyt= pause --wait=25 && set /A keyt=*0x4CB00 也可以  详情 回复 发表于 2014-11-25 19:42
回复

使用道具 举报

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

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

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

点评

对,就是等待20S,这个时候按什么键字都可以不响应,只能等待, 然后20S到了,直接进入主菜单。  详情 回复 发表于 2014-11-24 08:33
回复

使用道具 举报

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

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

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

使用道具 举报

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

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


试试吧

点评

我觉得这样改是不对的,只上关键部分。 第一步:这样改 。。。 set keyt= pause --wait=5 && set /A keyt=*0x4CB00 echo %keyt% echo 123456 pause 。。。 改好后在主菜单按回车键,得出123456上面的值 A  详情 回复 发表于 2014-11-26 17:19
回复

使用道具 举报

发表于 2014-11-25 23:02: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

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

点评

啊,,,高手,,, 历害,谢谢你。  详情 回复 发表于 2014-11-26 10:52
回复

使用道具 举报

 楼主| 发表于 2014-11-26 10:52:45 | 显示全部楼层
nullren 发表于 2014-11-25 23:02
if  NOT exist keyt commandline
这个表示,没有输入就跳到脚本执行,不出菜单。
你也可以找到 菜单 的那 ...

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

使用道具 举报

发表于 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的菜单跳转了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-28 20:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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