无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 13691|回复: 39
打印 上一主题 下一主题

[分享] 随机背景

[复制链接]
跳转到指定楼层
1#
发表于 2011-7-12 17:29:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自己做的随机背景批处理,让大家见笑了,没什么水平,主要是想多做几个背景都能用得上,用到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 编辑 ]
2#
发表于 2011-7-13 10:05:02 | 只看该作者
使用最新版本的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 编辑 ]
回复

使用道具 举报

3#
发表于 2011-7-13 10:45:15 | 只看该作者

回复 #2 chenall 的帖子

这个好,刚好准备在我单位的VHD中部署,Chenall兄就写好了,直接拿来用了。多谢!
回复

使用道具 举报

4#
发表于 2011-7-13 16:40:49 | 只看该作者
嘿嘿,刚好用上,做成启动光盘,送给女生
回复

使用道具 举报

5#
 楼主| 发表于 2011-7-13 17:27:04 | 只看该作者

回复 #2 chenall 的帖子

还是老大的写法精简,学习了
回复

使用道具 举报

6#
发表于 2011-7-13 21:54:50 | 只看该作者
原帖由 3370123 于 2011-7-13 16:40 发表
嘿嘿,刚好用上,做成启动光盘,送给女生


你这个家伙用在追女孩子方便!
回复

使用道具 举报

7#
发表于 2011-7-14 09:42:17 | 只看该作者
又增添多一份精彩。。。。
回复

使用道具 举报

8#
 楼主| 发表于 2011-7-14 13:28:44 | 只看该作者
原帖由 chenall 于 2011-7-13 10:05 发表
使用最新版本的GRUB4DOS

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

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


经过虚拟机中测试,随机变量第一次取值还是一直一样,得第二次取值才能变化
回复

使用道具 举报

9#
发表于 2011-7-14 14:07:56 | 只看该作者
嗯,这是因为计算随机数的方法的问题。用这个就行了。

grldr.rar

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

回复

使用道具 举报

10#
发表于 2011-7-15 15:24:25 | 只看该作者
我有个思路,不用随机数,用checktime,截取秒,根据秒和文件的数量算一个数出来。

只是思路,还没付诸于行动。
回复

使用道具 举报

11#
发表于 2011-7-16 10:00:46 | 只看该作者

回复 #10 Plantsoot 的帖子

可以直接用内存地址0x46c处的值,这个和时间有关。
新版就是用这个和日期计算的。
回复

使用道具 举报

12#
发表于 2011-7-16 15:07:55 | 只看该作者
回复 #2 chenall 的帖子

我用randomgfx  /boot/splash/message 或 /boot/randomgfx  /boot/splash/message 的命令来调用,但在Dos下显示滚动的字句 'No such command,  /boot/splash/message '一直在滚动,不能进入Menu.....
请指教。
回复

使用道具 举报

13#
发表于 2011-7-16 17:41:23 | 只看该作者
原帖由 chenall 于 2011-7-16 10:00 发表
可以直接用内存地址0x46c处的值,这个和时间有关。
新版就是用这个和日期计算的。


OK,改天折腾折腾,正在制作一系列的背景图。
回复

使用道具 举报

14#
 楼主| 发表于 2011-7-16 17:51:44 | 只看该作者

回复 #12 wama 的帖子

将randomgfx放在grub4dos默认的path变量路径中,或者输入完整的路径
回复

使用道具 举报

15#
发表于 2011-7-16 18:35:45 | 只看该作者
回复 #14 ducs 的帖子

我已输入完整的路径,如
/boot/randomgfx  (hd0,0)/boot/splash/message 或
(hd0,0)/boot/randomgfx  (hd0,0)/boot/splash/message
都是同样与#12所述情况。
回复

使用道具 举报

16#
发表于 2011-7-16 19:19:23 | 只看该作者

回复 #11 chenall 的帖子

通过 0x46c获取时间:
貌似:小时是 calc *0x46c>>16&0xff
分秒是如何获取的?
回复

使用道具 举报

17#
发表于 2011-7-17 00:06:31 | 只看该作者

回复 #16 zxw 的帖子

google 0x46c或0040:006c
回复

使用道具 举报

18#
发表于 2011-7-17 00:09:13 | 只看该作者

回复 #15 wama 的帖子

debug 3
然后再试一下。我用手机上。

如果其他人没问题,那就是你自己的问题。
回复

使用道具 举报

19#
发表于 2011-7-17 19:14:15 | 只看该作者
回复 #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....呢?
感谢你的回应及指点。
回复

使用道具 举报

20#
 楼主| 发表于 2011-7-17 20:02:24 | 只看该作者

回复 #19 wama 的帖子

使用9楼的grldr来引导,chenall已经修改了随机变量的取值方法
回复

使用道具 举报

21#
发表于 2011-7-18 09:57:03 | 只看该作者
回复 #14 ducs 的帖子

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

使用道具 举报

22#
发表于 2011-7-18 10:50:17 | 只看该作者
原帖由 wama 于 2011-7-18 09:57 发表
回复 #14 ducs 的帖子

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

我的也是显示message0画面,9楼的grldr来引导
回复

使用道具 举报

23#
发表于 2011-7-18 16:42:24 | 只看该作者
抱歉,麻烦试试这个GRLDR

grldr.rar

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

回复

使用道具 举报

24#
发表于 2011-7-18 18:30:52 | 只看该作者
回复 #23 chenall  的帖子

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

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

因此都是显示message0画面。
回复

使用道具 举报

25#
发表于 2011-7-18 18:49:47 | 只看该作者
原帖由 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 ...

是的,我的也是。不行
回复

使用道具 举报

26#
 楼主| 发表于 2011-7-18 20:45:27 | 只看该作者
我用哪个版本都可以随机图片,估计是你们的文件位置及调用方式有问题
回复

使用道具 举报

27#
发表于 2011-7-18 20:58:23 | 只看该作者
#25,#26
你们用新的代码再试一下。前面的贴子,代码已经修改,增加了一行,初始化num的值。

还是不行的话应该就是你们使用的问题了。
回复

使用道具 举报

28#
发表于 2011-7-19 00:33:34 | 只看该作者
成功了,\(^o^)/~

就是加载有点慢,~~o(>﹏<)o
回复

使用道具 举报

29#
发表于 2011-7-19 10:45:29 | 只看该作者
回复 #27 chenall  的帖子

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

使用道具 举报

30#
发表于 2011-7-19 10:58:10 | 只看该作者
原帖由 wama 于 2011-7-19 10:45 发表
回复 #27 chenall  的帖子

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

你是XORLDR引导吧!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 20:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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