无忧启动论坛

标题: 随机背景 [打印本页]

作者: ducs    时间: 2011-7-12 17:29
标题: 随机背景
自己做的随机背景批处理,让大家见笑了,没什么水平,主要是想多做几个背景都能用得上,用到wenv命令,wenv命令需要支持随机数,批处理如下

!BAT:参数1为wenv命令地址,参数2为图片路径(完整路径减去图片后面的数字),参数3为图片数量(0开始,1,2.....),例如 /grub/Ransplash.bat /grub/drive/wenv /grub/splash/message 128

##:begin
%1 set messstr=%2
%1 set num=%3
%1 ${@RANDOM}
%1 set ran=${@RANDOM}
%1 calc res=${ran}/${num}*${num}
%1 calc res=${ran}-${res}
:: if not exist ${messstr}${res} && goto :begin ::这里判断文件存在有问题
%1 echo now Loading ${messstr}${res}
%1 call gfxmenu ${messstr}${res}

在lst文件中加上/grub/Ransplash.bat /grub/drive/wenv /grub/splash/message 128
/grub/Ransplash.bat是上面批处理文件名和位置.

需要在第二个参数的路径下准备随机的背景图片如下命令(为了看清楚,我写完整路径)
/grub/splash/message0
/grub/splash/message1
/grub/splash/message2

这样,还可以更多,如果是这样,第三个参数应该是3,因为一共是三个嘛,但应该可以自动判断以/grub/splash/message类的文件个数,不用最后一个参数,我是菜鸟不会写

经实验第一个${@RANDOM} 经常是8209这个固定值(至少绝大多数是这个)
所以先去掉第一次调用的${@RANDOM},用下面的代替(::begin后面的第三行)(但有的版本grub不支持这种写法,有的版本支持)
%1 ${@RANDOM}

这里有几个问题没解决,希望看到此帖的高手请教:
1.怎么不显示wenv的屏幕显示信息,例如set后面的都显示出来了
2.${@RANDOM}如何让第一次不显示8209
3.如何判断带有变量的文件是否存在,如上面的有问题的那句if not exist ${messstr}${res} && goto :begin

[ 本帖最后由 ducs 于 2011-7-14 16:59 编辑 ]
作者: chenall    时间: 2011-7-13 10:05
使用最新版本的GRUB4DOS

因为使用到了最新的测试版功能,请到这里下载最新测试版本。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=180142&page=114#pid2273892

注释我就不写了,比较简单的一个脚本。
保存为文件名比如
randomgfx

然后使用以下命令来调用
randomgfx  /grub/splash/message

注:因为只是简单的脚本,很多情况没有考虑。目前这个脚本要正常使用,有以下要求
1./boot/splash/目录下只能有message*文件,否则会出错。
2.message*必须是从0开始的数据序列。像message0,message1,message2之类的。


!BAT
if "%~1"=="" exit
setlocal

set num=0
debug off
ls /%~1 | call :get_file_max num=
::注,下一句中间的空格是必须的
set /a res=%@random% % %num%
echo Now Loading %~1%res%
endlocal && gfxmenu %~1%res%
exit
  
:get_file_max
if "%~2"=="" exit
shift 2
set /a %1=%%%1%+1
goto %0


[ 本帖最后由 chenall 于 2011-7-18 20:57 编辑 ]
作者: Plantsoot    时间: 2011-7-13 10:45
标题: 回复 #2 chenall 的帖子
这个好,刚好准备在我单位的VHD中部署,Chenall兄就写好了,直接拿来用了。多谢!
作者: 3370123    时间: 2011-7-13 16:40
嘿嘿,刚好用上,做成启动光盘,送给女生
作者: ducs    时间: 2011-7-13 17:27
标题: 回复 #2 chenall 的帖子
还是老大的写法精简,学习了
作者: Plantsoot    时间: 2011-7-13 21:54
原帖由 3370123 于 2011-7-13 16:40 发表
嘿嘿,刚好用上,做成启动光盘,送给女生


你这个家伙用在追女孩子方便!
作者: 135956    时间: 2011-7-14 09:42
又增添多一份精彩。。。。
作者: ducs    时间: 2011-7-14 13:28
原帖由 chenall 于 2011-7-13 10:05 发表
使用最新版本的GRUB4DOS

因为使用到了最新的测试版功能,请到这里下载最新测试版本。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=180142&page=114#pid2273892

注释我就不写了,比较简单的一个脚本。
保存 ...


经过虚拟机中测试,随机变量第一次取值还是一直一样,得第二次取值才能变化
作者: chenall    时间: 2011-7-14 14:07
嗯,这是因为计算随机数的方法的问题。用这个就行了。

grldr.rar

129.69 KB, 下载次数: 183, 下载积分: 无忧币 -2


作者: Plantsoot    时间: 2011-7-15 15:24
我有个思路,不用随机数,用checktime,截取秒,根据秒和文件的数量算一个数出来。

只是思路,还没付诸于行动。
作者: chenall    时间: 2011-7-16 10:00
标题: 回复 #10 Plantsoot 的帖子
可以直接用内存地址0x46c处的值,这个和时间有关。
新版就是用这个和日期计算的。
作者: wama    时间: 2011-7-16 15:07
回复 #2 chenall 的帖子

我用randomgfx  /boot/splash/message 或 /boot/randomgfx  /boot/splash/message 的命令来调用,但在Dos下显示滚动的字句 'No such command,  /boot/splash/message '一直在滚动,不能进入Menu.....
请指教。
作者: Plantsoot    时间: 2011-7-16 17:41
原帖由 chenall 于 2011-7-16 10:00 发表
可以直接用内存地址0x46c处的值,这个和时间有关。
新版就是用这个和日期计算的。


OK,改天折腾折腾,正在制作一系列的背景图。
作者: ducs    时间: 2011-7-16 17:51
标题: 回复 #12 wama 的帖子
将randomgfx放在grub4dos默认的path变量路径中,或者输入完整的路径
作者: wama    时间: 2011-7-16 18:35
回复 #14 ducs 的帖子

我已输入完整的路径,如
/boot/randomgfx  (hd0,0)/boot/splash/message 或
(hd0,0)/boot/randomgfx  (hd0,0)/boot/splash/message
都是同样与#12所述情况。
作者: zxw    时间: 2011-7-16 19:19
标题: 回复 #11 chenall 的帖子
通过 0x46c获取时间:
貌似:小时是 calc *0x46c>>16&0xff
分秒是如何获取的?
作者: chenall    时间: 2011-7-17 00:06
标题: 回复 #16 zxw 的帖子
google 0x46c或0040:006c
作者: chenall    时间: 2011-7-17 00:09
标题: 回复 #15 wama 的帖子
debug 3
然后再试一下。我用手机上。

如果其他人没问题,那就是你自己的问题。
作者: wama    时间: 2011-7-17 19:14
回复 #18 chenall 的帖子

我将输入的路径改变,如
(hd0,0)/boot/grub/randomgfx  (hd0,0)/boot/splash/message
便能正常启动G4D菜单,改debug 3则在进入菜单前续行显示,而debug off则直接显示菜单画面,但无论debug 3或debug off都总是显示message0画面,并没有随机显示message1-5.....,请问可否在进入菜单画面前,让使用者选择message1-5....呢?
感谢你的回应及指点。
作者: ducs    时间: 2011-7-17 20:02
标题: 回复 #19 wama 的帖子
使用9楼的grldr来引导,chenall已经修改了随机变量的取值方法
作者: wama    时间: 2011-7-18 09:57
回复 #14 ducs 的帖子

我已是使用9楼的grldr来引导的,但情况就如#18所述情况一样,启动时永远都是显示message0画面。
作者: jeremy    时间: 2011-7-18 10:50
原帖由 wama 于 2011-7-18 09:57 发表
回复 #14 ducs 的帖子

我已是使用9楼的grldr来引导的,但情况就如#18所述情况一样,启动时永远都是显示message0画面。

我的也是显示message0画面,9楼的grldr来引导
作者: chenall    时间: 2011-7-18 16:42
抱歉,麻烦试试这个GRLDR

grldr.rar

129.77 KB, 下载次数: 55, 下载积分: 无忧币 -2


作者: wama    时间: 2011-7-18 18:30
回复 #23 chenall  的帖子

已更换了#23的grldr,但情况依然,当进入菜单前显示以下讯息:

"Initialize Variable Space...
Starting cmain〔〕... No PXE stack
Now Loading (hd0,3) /Boot/Splash/message0
Initializing gfx code..."

因此都是显示message0画面。
作者: jeremy    时间: 2011-7-18 18:49
原帖由 wama 于 2011-7-18 18:30 发表
回复 #23 chenall  的帖子

已更换了#23的grldr,但情况依然,当进入菜单前显示以下讯息:

"Initialize Variable Space...
Starting cmain〔〕... No PXE stack
Now Loading (hd0,3) /Boot/Splash/messa ...

是的,我的也是。不行
作者: ducs    时间: 2011-7-18 20:45
我用哪个版本都可以随机图片,估计是你们的文件位置及调用方式有问题
作者: chenall    时间: 2011-7-18 20:58
#25,#26
你们用新的代码再试一下。前面的贴子,代码已经修改,增加了一行,初始化num的值。

还是不行的话应该就是你们使用的问题了。
作者: 3370123    时间: 2011-7-19 00:33
成功了,\(^o^)/~

就是加载有点慢,~~o(>﹏<)o
作者: wama    时间: 2011-7-19 10:45
回复 #27 chenall  的帖子

增加了一行後,不但没有显示message0画面,连进入菜单画面都不能,便从新开机,就是这样不能进入xp了。
C大可否写个bat文件,在进入G4D菜单前,可选择0~5...的message画面吗?我较喜欢这样的操作。谢谢!
作者: jeremy    时间: 2011-7-19 10:58
原帖由 wama 于 2011-7-19 10:45 发表
回复 #27 chenall  的帖子

增加了一行後,不但没有显示message0画面,连进入菜单画面都不能,便从新开机,就是这样不能进入xp了。
C大可否写个bat文件,在进入G4D菜单前,可选择0~5...的message画面吗?我较 ...

你是XORLDR引导吧!
作者: wama    时间: 2011-7-19 18:15
原帖由 jeremy 于 2011-7-19 10:58 发表

你是XORLDR引导吧!





是G4D引导的
作者: MR.L    时间: 2011-7-20 09:06
各位能不能将自己的message一起传上来大家分享一下啊,最好去除个人的信息。
作者: wama    时间: 2011-7-20 10:48
原帖由 ducs 于 2011-7-18 20:45 发表
我用哪个版本都可以随机图片,估计是你们的文件位置及调用方式有问题




我当初感觉本人的电脑所用的ASUS主板不相容,但我用另一台电脑技嘉主板,情况仍然一样,请将你的文件位置及调用方式上传,以供叁考,谢谢。
作者: hb_711    时间: 2011-7-20 19:10
看了各位的帖子,我终于弄好了!!激动人心!刚开始我把c大的批处理保存的编码不对,耽误的几十分钟!我用ud启动感觉很棒!!随机背景加载并不慢!!!我弄了20个message感觉很爽!(用百草霜的工具做了36个,无奈只有20个可用)手机没流量了,电脑没连网,有机会在再共享。呼吁大家多多制作message!!!!!!!!!向楼主致敬!!!!!!!!!!!!!!很有创意!!!还有c大!!

[ 本帖最后由 2010hb_711 于 2011-7-20 20:59 编辑 ]
作者: MR.L    时间: 2011-7-20 21:39
坐等楼上的message。嘎嘎
作者: 2011tjqct    时间: 2011-8-18 16:59
期待chenall 大侠写一个XPM.GZ格式的随机背景批处理!
作者: wangziqiang    时间: 2011-8-18 23:45
不错啊 楼主  学习了  辛苦了您
作者: husiqin    时间: 2011-8-22 23:19
谁有弄好的,传个完整的上来看看,弄半天没搞定。晕死。
作者: jh1688    时间: 2011-8-23 08:00
原帖由 husiqin 于 2011-8-22 23:19 发表
谁有弄好的,传个完整的上来看看,弄半天没搞定。晕死。

同感,能分享一个成功的看看吗??
作者: husiqin    时间: 2011-8-26 15:01
顶到有高人出现为止。




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