Board logo

标题: DISKEMU创作实例! [打印本页]

作者: je64    时间: 2004-6-21 18:32     标题: DISKEMU创作实例!

[这个贴子最后由je64在 2004/11/30 11:11am 第 4 次编辑]

DISKEMU是一款功能非常强大的启动光盘制作工具,其关键在于DISKEMU.CMD的编写。
附件中提供了DISKEMU.CMD的命令行参数!
下面以一个例子来说明DISKEMU.CMD的格式及命令参数!

;DISKEMU.CMD

:nologo
[glow=255,blue,2];设置背景模式[/glow]
transparent on
[glow=255,blue,2];只画前景色[/glow]
backgroundimage pixel VLK.bmp
setresolution 640 480 32
[glow=255,blue,2];设置背景为VLK.BMP,其格式为640*480,32位[/glow]
setdac   0 0x00 0x00 0x00
[glow=255,blue,2];黑色[/glow]
setdac   1 0x00 0x7f 0x7f
[glow=255,blue,2];青色[/glow]
setdac 100 0xff 0x1f 0x1f
[glow=255,blue,2];红色[/glow]
setdac 101 0x00 0xff 0x00
[glow=255,blue,2];绿色[/glow]
setdac 102 0x00 0x00 0xff
[glow=255,blue,2];蓝色[/glow]
setdac 103 0x5f 0x5f 0x5f
[glow=255,blue,2];灰色[/glow]
setdac 255 0xff 0xff 0xff
[glow=255,blue,2];白色[/glow]
[glow=255,blue,2];设置调色板[/glow]
timerpos 13 25
[glow=255,blue,2];以(13,25)为坐标显示倒计数定时器[/glow]
timercolor 102 @auto
[glow=255,blue,2];倒计数定时器使用102号色,背景为自动[/glow]
processparam pixel 101 103 0 475 640 480
[glow=255,blue,2];进度条显示参数为:前景色101,背景色103,左上角坐标(0,475),右下角坐标(640,480)[/glow]
call drawhelptext
[glow=255,blue,2];调用函数drawhelptext[/glow]
goto item4
[glow=255,blue,2];跳转到item4[/glow]

:drawhelptext
cls 0
[glow=255,blue,2];清屏[/glow]
repaint
[glow=255,blue,2];绘制背景[/glow]
drawtext 12 2  0 "  [ VLK版 ]
[glow=255,blue,2];在(12,2)位置以0号色为前景色,显示"[ VLK版 ]"[/glow]
drawtext pixel 30 110 50   "请选择你要进行的操作:
[glow=255,blue,2];在(30,110)位置以50号色为前景色,显示 "请选择你要进行的操作:"
;drawtext pixel与drawtext两个命令的坐标是不一致的![/glow]
drawtext pixel 30 399 120   "倒记时:
return
[glow=255,blue,2];从子函数返回[/glow]


:menu
transparent on
drawtext pixel 70 160 0      " 1   DOS 工具
drawtext pixel 70 200 0      " 2   安装上海市政府版
drawtext pixel 70 240 0      " R   重新引导系统
drawtext pixel 70 280 0      "ESC  从硬盘启动
drawtext pixel 70 320 0      "F 1  说  明
return


:mainkey
[glow=255,blue,2];检测到的按键不是所需的,继续等待[/glow]
onkey 1   call dos
[glow=255,blue,2];如果内部保存的按键是1,将执行dos这条命令。[/glow]
onkey 2   call vlk
[glow=255,blue,2];如果内部保存的按键是2,将执行vlk这条命令。[/glow]
onkey r   reboot
[glow=255,blue,2];如果内部保存的按键是r,将重新启动。[/glow]
onkey esc boot 80
[glow=255,blue,2];如果内部保存的按键是esc,将执行从硬盘启动。[/glow]
onkey f1  call help
[glow=255,blue,2];如果内部保存的按键是f1,将执行help这条命令。[/glow]
return
[glow=255,blue,2];从子函数返回[/glow]
;


:item1
transparent on
drawtext pixel 70 160 102    " 1   DOS 工具
drawtext pixel 70 200 0      " 2   安装上海市政府版
drawtext pixel 70 240 0      " R   重新引导系统
drawtext pixel 70 280 0      "ESC  从硬盘启动
drawtext pixel 70 320 0      "F 1  说  明
getkey showtime showprocess 30 entr
onkey entr setkey 1
onkey num_entr setkey 1
onkey up  goto item5
onkey down goto item2
call mainkey
goto item1
;


:item2
transparent on
drawtext pixel 70 160 0      " 1   DOS 工具
drawtext pixel 70 200 102    " 2   安装上海市政府版
drawtext pixel 70 240 0      " R   重新引导系统
drawtext pixel 70 280 0      "ESC  从硬盘启动
drawtext pixel 70 320 0      "F 1  说  明
getkey showtime showprocess 30 entr
onkey entr setkey 2
onkey num_entr setkey 2
onkey up   goto item1
onkey down goto item3
call mainkey
goto item2
;


:item3
call menu
transparent on
drawtext pixel 70 240 102    " R   重新引导系统
getkey showtime showprocess 30 entr
onkey entr setkey r
onkey num_entr setkey r
onkey up   goto item2
onkey down goto item4
call mainkey
goto item3
;


:item4
call menu
[glow=255,blue,2];调用函数menu[/glow]
transparent on
[glow=255,blue,2];画前景色[/glow]
drawtext pixel 70 280 102    "ESC  从硬盘启动
[glow=255,blue,2];在(70,280)位置以102号色为前景色,显示"ESC  从硬盘启动",
;它会覆盖:menu中的"ESC  从硬盘启动"的着色[/glow]
getkey showtime showprocess 30 entr
[glow=255,blue,2];等待按键,如果30秒没有按键,使用缺省按键entr作为输入。
;在选择了菜单之后仍会有倒计时,等待操作
;它与getkey 30 entr功能相似,但它会出现倒计时和进度条,而getkey 30 entr
;则不会出现[/glow]
onkey entr setkey esc
[glow=255,blue,2];如果按键为Enter,把会执行按键esc键[/glow]
onkey num_entr setkey esc
[glow=255,blue,2];如果按键为Enter(小键盘),把会执行按键esc键[/glow]
onkey up   goto item3
[glow=255,blue,2];如果按键为up(向上的箭头),把会执行item3[/glow]
onkey down goto item5
[glow=255,blue,2];如果按键为down(向下的箭头),把会执行item2[/glow]
call mainkey
[glow=255,blue,2];调用函数mainkey[/glow]
goto item4
[glow=255,blue,2];检测到的按键不是所需的,继续等待[/glow]
;


:item5
call menu
transparent on
drawtext pixel 70 320 102    "F 1  说  明
getkey showtime showprocess 30 entr
onkey entr setkey f1
onkey num_entr setkey f1
onkey up   goto item4
onkey down goto item1
call mainkey
goto item5
;



:vlk
transparent on
[glow=255,blue,2];画前景色[/glow]
drawtext pixel 70 160 0      " 1   DOS 工具
drawtext pixel 70 200 102    " 2   安装上海市政府版
drawtext pixel 70 240 0      " R   重新引导系统
drawtext pixel 70 280 0      "ESC  从硬盘启动
drawtext pixel 70 320 0      "F 1  说  明
colorblock pixel 255 100 225 280 320
[glow=255,blue,2];用255号色画一个色块,左上角坐标为(100, 225),右下角坐标为(280,320)。[/glow]
drawhline pixel 0 100  280 225
[glow=255,blue,2];用0号色画水平线,横坐标为100,280,纵坐标为225
;也许这样解释你会更明白:把点(100,225)和点(280,225)連成一条线[/glow]
drawhline pixel 0 100  280 320
[glow=255,blue,2];用0号色画水平线,横坐标为100,280,纵坐标为320[/glow]
[glow=255,blue,2];把点(100,320)和点(280,320)連成一条线[/glow]
drawvline pixel 0 100  225 320
[glow=255,blue,2];用0号色画垂直线,横坐标为100,纵坐标为225,320[/glow]
[glow=255,blue,2];把点(100,225)和点(100,320)連成一条线[/glow]
drawvline pixel 0 280 225 320
[glow=255,blue,2];用0号色画垂直线,横坐标为280,纵坐标为225,320[/glow]
[glow=255,blue,2];把点(280,225)和点(280,320)連成一条线[/glow]
drawtext pixel 110 235 120   "请确认执行此操作:
drawtext pixel 120 265 0     "[ 1 ] 确定
drawtext pixel 120 295 0     "[ESC] 取消
goto vlkkey
[glow=255,blue,2];跳转到vlkkey[/glow]
;
[glow=255,blue,2];(效果见图2)[/glow]

:vlkkey
getkey
[glow=255,blue,2];检测到的按键不是所需的,继续等待[/glow]
onkey 1     call  vlkset
onkey esc   call  vlkmenu
call vlkkey
[glow=255,blue,2];调用函数vlkkey[/glow]
;

:vlkmenu
Repaint pixel 99 224 182 97
[glow=255,blue,2];重新绘制指定区域的背景,以点(99,224)为坐标,向右延伸182,并向下延伸97[/glow]
[glow=255,blue,2];请不要误解为:左上角坐标为(99,224),右下角坐标为(182,97)[/glow]
transparent on
[glow=255,blue,2];画前景色[/glow]
goto item2
[glow=255,blue,2];返回原菜单(item2)[/glow]
;

:vlkset
cls
[glow=255,blue,2];清屏[/glow]
cd IMG
[glow=255,blue,2];切换到当前目录下的IMG目录[/glow]
run GHOSTXP.IMG
[glow=255,blue,2];在当前目录加载GHOSTXP.IMG[/glow]
return
;


:dos
transparent on
drawtext pixel 70 160 102    " 1   DOS 工具
drawtext pixel 70 200 0      " 2   安装上海市政府版
drawtext pixel 70 240 0      " R   重新引导系统
drawtext pixel 70 280 0      "ESC  从硬盘启动
drawtext pixel 70 320 0      "F 1  说  明
colorblock pixel 255 100 185 325 400
drawhline pixel 0 100  325 185
drawhline pixel 0 100  325 400
drawvline pixel 0 100  185 400
drawvline pixel 0 325  185 400
drawtext pixel 115 195 0      " 1   DOS 8.0 系统
drawtext pixel 115 215 0      " 2   WIN98 原版启动盘
drawtext pixel 115 235 0      " 3   BIOS 工具
drawtext pixel 115 255 0      " 4   Partition Magic V8.0
drawtext pixel 115 275 0      " 5   NTFS DOS Pro
drawtext pixel 115 295 0      " 6   GHOST V8.0
drawtext pixel 115 315 0      " 7   DM 9.56 通用版
drawtext pixel 115 335 0      " 8   效率源修复程式
drawtext pixel 115 355 0      " 9   HDD Regenerator
drawtext pixel 115 375 0      "ESC  返回主菜单
goto DOSKEY
;

:DOSKEY
getkey
onkey 1     call  dos80
onkey 2     call  win98
onkey 3     call  bios
onkey 4     call  pq80
onkey 5     call  ntfs
onkey 6     call  ghost
onkey 7     call  dm956
onkey 8     call  xly16
onkey 9     call  hdd
onkey esc   call  dosmenu
call DOSKEY
;

:dosmenu
Repaint pixel 99 184 227 217
call item1
;


:win98
cls
cd IMG
run DOS98.IMG
[glow=255,blue,2];加载失败[/glow]
getkey
call drawhelptext
return
;


:dos80
cls
cd IMG
run DOS80.img
;加载失败
getkey
call drawhelptext
return
;

:ntfs
cls
cd IMG
run NTFS2DOS.IMG
;加载失败
getkey
call drawhelptext
return
;

:pq80
cls
cd IMG
run PQ8.IMG
;加载失败
getkey
call drawhelptext
return
;

:dm956
cls
cd IMG
run DM.IMA
;加载失败
getkey
call drawhelptext
return
;

:xly16
cls
cd IMG
run XLY.IMG
;加载失败
getkey
call drawhelptext
return
;

:hdd
cls
cd IMG
run heereg.IMA
;加载失败
getkey
call drawhelptext
return
;

:ghost
cls
cd IMG
run GHOST8.IMG
;加载失败
getkey
call drawhelptext
return
;

:bios
cls
cd IMG
run DOSBIOS.IMG
;加载失败
getkey
call drawhelptext
return
;




:help
[glow=255,blue,2]; 显示帮助[/glow]
cls
print
print           Microsoft Windows XP 简体中文恢复光盘
print                                        【 VLK版 】
print                                                Made By je64
print                                    
print       感谢您使用本恢复光盘。
print
print       本光盘是利用Windows xp SP1上海市政府版(VLK)制作而成的万能恢复盘。无任何
print   删减,安装完成后无需上网激活。已经安装了2004年3月19日以前的所有关键更新和推
print   荐更新,并集成安装了常用的软件。
print   
print   使用说明:在恢复后第一次启动时选择正确的高级电源管理模式,如不操作将安装默认
print   的高级电源管理模式,选择时可参照下方的说明。执行后系统将自动完成接下来的操作。
print   进入系统后可直接安装驱动程序。
print     
print   注意:选择错误的电源管理模式可能会引起系统不能正确引导或关机。此时只需更改正
print   确的电源管理模式,或重新执行恢复操作并选择正确的电源管理模式。
print  
print       无须人力干涉,轻松安装系统。
print
print       如果您在使用中有什么问题或有什么好的建议,请与我联系!
print   
print                                          
print     [按任意键返回主菜单]         
print                                               
print        EMail:JE_64@163.COM                                               
print                                                    2004年3月20日
print
[glow=255,blue,2];在当前显示位置输出后面的字符串[/glow]
getkey
[glow=255,blue,2];等待操作[/glow]
batch diskemu.cmd
[glow=255,blue,2];在当前目录加载diskemu.cmd,然后从头开始执行[/glow]
return
;

仔细看过上面的DISKEMU.CMD之后,你或许会有以下的疑问:
1.为什么我在"item1","item2","vlk","dos"中不使用call menu然后再覆盖相应部分?
这是因为这个版本(Dec 25 2002)的DISKEMU.BIN不支持多个的调用函数,如果多次调用函数,
会出现不能调用的结果!就像是“检测到的按键不是所需的,继续等待”。
解决办法将在让"DISKEMU支持VM虚拟机!"中介绍!

2.下面
:vlkmenu
Repaint pixel 99 224 182 97
transparent on
goto item2
;
中的99 224 182 97是如何得出的呢?

简单的说可以用下面的公式来得出:
colorblock pixel 255 100 225 280 320
                      x1  y1  x2  y2
Repaint pixel 99 224 182 97
              x2  y2  w   h
x1-1=x2
y1-1=y2
x2-x1+2=w
y2-y1+2=h
这样是不是形象一点,更容易明白呢!
启动界面:



菜单(图示):



帮助:



相关文章:
DISKEMU与EASYBOOT的完美结合简述!
让DISKEMU支持VM虚拟机!
作者: lucky0504    时间: 2004-6-22 03:08     标题: DISKEMU创作实例!

顶一下,最近考试,没时间研究,有空要详细看一下,到时再向老大您请教。
作者: 踏弩    时间: 2004-6-22 05:13     标题: DISKEMU创作实例!

谢谢分享,最近也是太忙,没时间做光盘,先存下来了
作者: shwhq    时间: 2004-6-23 17:00     标题: DISKEMU创作实例!

[这个贴子最后由shwhq在 2004/06/23 09:09am 第 1 次编辑]

钱不够!
灌了好多水,终于看到啦。好文章,谢谢楼主!
作者: hjh0927    时间: 2004-6-28 15:44     标题: DISKEMU创作实例!

好东西值
作者: 沙同    时间: 2004-6-29 04:49     标题: DISKEMU创作实例!

尊敬的je64,你何必设置壁垒,象我这种菜鸟不学习哪能提高呢!?请解除限制!
作者: jddj    时间: 2004-6-29 09:12     标题: DISKEMU创作实例!

要求置顶,多放几天,狠狠的学习学习一下
作者: jddj    时间: 2004-6-29 17:48     标题: DISKEMU创作实例!

下了一个demu20演示盘,看里面的说明有这么一段:
制作启动光盘所需要的文件存放在Develop目录下,你可以参考我的例子脚本。
启动是将在根目录内试图加载,如果失败将在/BOOT下尝试。演示盘里的DiskEmu.bin
文件是集成了启动脚本的,所谓集成就是使用下列指令将脚本和解释引擎合并:
copy /b DiskEmu.bin+DiskEmu.cmd DiskEmu.bin
HZK16和HZK16F为CCDOS的简繁体中文字库,如果你不需要使用中文,可以删除。
Loader.bin为启动引导文件,需要在mkisofs或则CDImage的参数中指定。
尤其是最后一句不明白,里面也有一个CDImage.exe,该怎么指定Loader.bin?

作者: je64    时间: 2004-6-29 17:52     标题: DISKEMU创作实例!

引用:
下面引用由沙同2004/06/28 08:49pm 发表的内容:
尊敬的je64,你何必设置壁垒,象我这种菜鸟不学习哪能提高呢!?请解除限制!
现在解除限制,怎么对得起以前购买的网友.
你不够钱吗??
作者: je64    时间: 2004-6-29 17:57     标题: DISKEMU创作实例!

引用:
下面引用由jddj2004/06/29 09:48am 发表的内容:
下了一个demu20演示盘,看里面的说明有这么一段:
制作启动光盘所需要的文件存放在Develop目录下,你可以参考我的例子脚本。
启动是将在根目录内试图加载,如果失败将在/BOOT下尝试。演示盘里的DiskEmu.bin
文件是 ...
类似于EASYBOOT,以 Loader.bin为引导文件,如果是用CDIMAGE来制作ISO,就指定以Loader.bin为引导!
作者: jddj    时间: 2004-6-29 18:18     标题: DISKEMU创作实例!

[这个贴子最后由jddj在 2004/06/29 10:20am 第 1 次编辑]

CDIMAGE在XP里能正常使用吗,我怎么一双击就一闪而过了,里面自带的这个CDIMAGE大小只有107K,看看正常不??
呵呵,不好意思,刚又找点东西看了看,这个好象是在DOS下使用的吧?!
作者: je64    时间: 2004-6-29 19:03     标题: DISKEMU创作实例!

是的,它自带那个是在DOS下使用的.在WIN下使用的也有,可以在网上搜索一下!
图形化界面,一目了然!
作者: lucky0504    时间: 2004-7-1 07:44     标题: DISKEMU创作实例!

CDimageGUI是windows下的图形化界面,大概1.3M多。
作者: m1j2l3    时间: 2004-7-4 01:15     标题: DISKEMU创作实例!

好贵啊~~~
不过好的帖子值!!
作者: jdwxyd    时间: 2004-7-6 16:24     标题: DISKEMU创作实例!

尊敬的je64,你何必设置壁垒,象我这种菜鸟不学习哪能提高呢!?请解除限制!

作者: xzf    时间: 2004-7-9 16:08     标题: DISKEMU创作实例!

引用:
下面引用由jdwxyd2004/07/06 08:24am 发表的内容:
尊敬的je64,你何必设置壁垒,象我这种菜鸟不学习哪能提高呢!?请解除限制!
解除限制没有需要,自己懂的的给别人说一下赚点钱,就行了。解除了对的起以前购买的人吗。我想永远不会解除,购买它也是对作者的鼓励,作者就有信心呀,你们说对不对。
作者: duduclm    时间: 2004-7-11 19:04     标题: DISKEMU创作实例!

我看看我有多少钱
作者: douxiaobo    时间: 2004-7-11 21:42     标题: DISKEMU创作实例!

强烈要求资源共享,解除限制
作者: e-情人    时间: 2004-7-19 07:59     标题: DISKEMU创作实例!

晕!~
我等穷人没机会看了
作者: jacky★chen    时间: 2004-7-19 22:48     标题: DISKEMU创作实例!

靠,还要钱
作者: zhhmok    时间: 2004-7-23 19:55     标题: DISKEMU创作实例!

[DISABLELBCODE]
作者: jackox    时间: 2004-7-24 01:01     标题: DISKEMU创作实例!

这帖子那么贵买不起
作者: jackox    时间: 2004-7-24 01:02     标题: DISKEMU创作实例!

 
作者: fgc    时间: 2004-7-24 16:04     标题: DISKEMU创作实例!

楼主 ,我想你你用entr表示回车,用num-enrt表示 小键盘的回车,。是不是所有 的键都 是有规定 的, 用什么表示什么?能不能给出一个全面 有什么 表示 什么的表格 。
作者: je64    时间: 2004-7-25 01:52     标题: DISKEMU创作实例!

只用到了回车键,和数字键,其它没试过,不好说了!
作者: 点蓝    时间: 2004-7-27 02:22     标题: DISKEMU创作实例!

偶买了。好贴子值!
作者: i815ep-t    时间: 2004-7-27 21:59     标题: DISKEMU创作实例!

要这么多的钱,楼主也太狠点了
作者: yg2003    时间: 2004-7-29 12:07     标题: DISKEMU创作实例!

偶很久没来了,没想到一来就得花钱。楼主你也太...
作者: 幻狼    时间: 2004-7-29 23:55     标题: DISKEMU创作实例!

................没钱
作者: 幻狼    时间: 2004-7-29 23:55     标题: DISKEMU创作实例!

怎么才能有钱啊?
作者: njzam    时间: 2004-8-1 07:21     标题: DISKEMU创作实例!

为了100
作者: 王小小    时间: 2004-8-4 01:08     标题: DISKEMU创作实例!

谢谢
作者: liuguo    时间: 2004-8-5 05:16     标题: DISKEMU创作实例!

看看..........
作者: bt0850    时间: 2004-8-11 05:10     标题: DISKEMU创作实例!

good.....nice

作者: kelu    时间: 2004-8-15 02:10     标题: DISKEMU创作实例!

顶!
作者: 如影随风    时间: 2004-8-18 00:29     标题: DISKEMU创作实例!

看了这么久,还是不会呀
作者: xzc999    时间: 2004-8-20 00:05     标题: DISKEMU创作实例!

图形化界面,一目了然!
作者: iawnck    时间: 2004-8-20 20:44     标题: DISKEMU创作实例!

可是我没钱呀。。。
作者: lucky0504    时间: 2004-8-21 07:02     标题: DISKEMU创作实例!

JE64兄,我最近想研究研究这个,命令虽然这里有了,可否贴一个目录结构的图让小弟我看看.
作者: je64    时间: 2004-8-21 17:37     标题: DISKEMU创作实例!

光盘下的目录不是什么重要的。因为它可以像DOS一样有进入和退出各个文件夹的命令,一般只是把DISKEMU的全部文件放在光盘的一个目录下,如BOOT,同时可在这个目录下建立一个文件夹来存放IMG文件,如IMG目录。
可以把安装系统用到的引导文件BIN放到BOOT目录下,可直接运行了。
这些与EASYBOOT都差不多的!
如有必要,我再帖些图上来!
作者: lucky0504    时间: 2004-8-21 18:06     标题: DISKEMU创作实例!

多谢JE64兄的讲解.
作者: ylqilan    时间: 2004-8-23 23:31     标题: DISKEMU创作实例!

我知道哪里有免费的看,呵呵
作者: 4333    时间: 2004-8-27 21:30     标题: DISKEMU创作实例!

4333
作者: cabbage    时间: 2004-8-29 06:31     标题: DISKEMU创作实例!

穷疯了!!!
作者: fsnhli2003    时间: 2004-8-30 22:47     标题: DISKEMU创作实例!

我也学做了一个,但不能显示中文,请问斑竹这是为什么?


作者: je64    时间: 2004-8-31 01:27     标题: DISKEMU创作实例!

缺少中文支持,需要
HZK16   简体中文支持
HZK16F  繁体中文支持
把这两个文件放到DISKEMU相关文件目录就可以了!
作者: maishiina    时间: 2004-8-31 05:47     标题: DISKEMU创作实例!

为什么要100元?对我新手来说太多了!
不过我会努力的!
作者: LiLianjiang    时间: 2004-9-2 01:11     标题: DISKEMU创作实例!

好!谢!
作者: hywangwei    时间: 2004-9-7 23:42     标题: DISKEMU创作实例!

你狠,顶你一下
作者: jwdaixiaol    时间: 2004-9-11 03:07     标题: DISKEMU创作实例!

还是同意解除限制。虽然我用钱买了
作者: yangbinggg    时间: 2004-9-18 14:24     标题: DISKEMU创作实例!

钱不够!

作者: zjslf    时间: 2004-9-19 15:15     标题: DISKEMU创作实例!


作者: 541daye    时间: 2004-9-23 17:25     标题: DISKEMU创作实例!

不过如此,呵呵,
作者: alan123    时间: 2004-9-23 22:28     标题: DISKEMU创作实例!

好东西
作者: web8888    时间: 2004-9-24 16:42     标题: DISKEMU创作实例!

要钱呀,老大,你都那么富有了还要那么多钱干什么?
作者: 雪来的时候    时间: 2004-9-25 15:46     标题: DISKEMU创作实例!

要学要学的~~
作者: tangbo    时间: 2004-9-26 00:46     标题: DISKEMU创作实例!

不好意思,没钱,买不起
作者: wangce    时间: 2004-9-28 04:09     标题: DISKEMU创作实例!

怎么那么贵刚找到这个软件还在学习中要这么多钱看不到啊。

作者: mmtvs    时间: 2004-9-28 20:37     标题: DISKEMU创作实例!

好,顶
作者: zip    时间: 2004-10-3 19:28     标题: DISKEMU创作实例!

一直以來都很想使用這軟體做選單,可是都學不太會...載下來做參考...
作者: libomoster    时间: 2004-10-8 20:48     标题: DISKEMU创作实例!

好东西,值!
作者: ximen    时间: 2004-10-13 20:53     标题: DISKEMU创作实例!

引用:
下面引用由jdwxyd2004/07/06 08:24am 发表的内容:
尊敬的je64,你何必设置壁垒,象我这种菜鸟不学习哪能提高呢!?请解除限制!
就是呀,解除吧,让我们这些穷菜鸟学点东西呀,我会报答你的
作者: yjtabc    时间: 2004-10-14 03:27     标题: DISKEMU创作实例!

算你狠!我买!我付钱!
   
   
>> 欢迎您,yjtabc:重登录  控制面板  搜索  在线  论坛设施  帮助  退出     

>>> 讨论Diskemu, Bootscriptor, isolinux等技术  刻录家园(CD-R Home) → 启动技术论坛 [返回] → 浏览:DISKEMU创作实例!  标记论坛所有内容为已读  

目前论坛总在线 32 人,本主题共有 1 人浏览。其中注册用户 1 人,访客 0 人。  [关闭详细列表]  
yjtabc



     ◆您是本帖第 2676 个阅读者◆         

  * 贴子主题: DISKEMU创作实例!           默认稍大普通较大很大最大  
  

  je64   头衔: 论坛斑竹
  

信息:   
威望: +4
魅力:  
经验:  
现金: 35266 雷傲元
存款: 没开户
贷款: 没贷款
来自: 保密 
在线: 49 时 28 分 38 秒
总发贴数: 792 篇
精华贴数: 2 篇
注册日期: 2004/04/22
  消息 查看 搜索 好友 邮件 复制 引用 回复  [楼 主]

  相关附件: (共 5272 字节)
(此贴售价 100 雷傲元,目前已有 72 人购买)

DISKEMU是一款功能非常强大的启动光盘制作工具,其关键在于DISKEMU.CMD的编写。
附件中提供了DISKEMU.CMD的命令行参数!
下面以一个例子来说明DISKEMU.CMD的格式及命令参数!

;DISKEMU.CMD

:nologo
;设置背景模式
transparent on
;只画前景色
backgroundimage pixel VLK.bmp
setresolution 640 480 32
;设置背景为VLK.BMP,其格式为640*480,32位
setdac   0 0x00 0x00 0x00
;黑色
setdac   1 0x00 0x7f 0x7f
;青色
setdac 100 0xff 0x1f 0x1f
;红色
setdac 101 0x00 0xff 0x00
;绿色
setdac 102 0x00 0x00 0xff
;蓝色
setdac 103 0x5f 0x5f 0x5f
;灰色
setdac 255 0xff 0xff 0xff
;白色
;设置调色板
timerpos 13 25
;以(13,25)为坐标显示倒计数定时器
timercolor 102 @auto
;倒计数定时器使用102号色,背景为自动
processparam pixel 101 103 0 475 640 480
;进度条显示参数为:前景色101,背景色103,左上角坐标(0,475),右下角坐标(640,480)
call drawhelptext
;调用函数drawhelptext
goto item4
;跳转到item4


:drawhelptext
cls 0
;清屏
repaint
;绘制背景
drawtext 12 2  0 "  [ VLK版 ]
;在(12,2)位置以0号色为前景色,显示"[ VLK版 ]"
drawtext pixel 30 110 50   "请选择你要进行的操作:
;在(30,110)位置以50号色为前景色,显示 "请选择你要进行的操作:"
;drawtext pixel与drawtext两个命令的坐标是不一致的!
drawtext pixel 30 399 120   "倒记时:
return
;从子函数返回


:menu
transparent on
drawtext pixel 70 160 0      " 1   DOS 工具
drawtext pixel 70 200 0      " 2   安装上海市政府版
drawtext pixel 70 240 0      " R   重新引导系统
drawtext pixel 70 280 0      "ESC  从硬盘启动
drawtext pixel 70 320 0      "F 1  说  明
return


:mainkey
;检测到的按键不是所需的,继续等待
onkey 1   call dos
;如果内部保存的按键是1,将执行dos这条命令。
onkey 2   call vlk
;如果内部保存的按键是2,将执行vlk这条命令。
onkey r   reboot
;如果内部保存的按键是r,将重新启动。
onkey esc boot 80
;如果内部保存的按键是esc,将执行从硬盘启动。
onkey f1  call help
;如果内部保存的按键是f1,将执行help这条命令。
return
;从子函数返回
;


:item1
transparent on
drawtext pixel 70 160 102    " 1   DOS 工具
drawtext pixel 70 200 0      " 2   安装上海市政府版
drawtext pixel 70 240 0      " R   重新引导系统
drawtext pixel 70 280 0      "ESC  从硬盘启动
drawtext pixel 70 320 0      "F 1  说  明
getkey showtime showprocess 30 entr
onkey entr setkey 1
onkey num_entr setkey 1
onkey up  goto item5
onkey down goto item2
call mainkey
goto item1
;


:item2
transparent on
drawtext pixel 70 160 0      " 1   DOS 工具
drawtext pixel 70 200 102    " 2   安装上海市政府版
drawtext pixel 70 240 0      " R   重新引导系统
drawtext pixel 70 280 0      "ESC  从硬盘启动
drawtext pixel 70 320 0      "F 1  说  明
getkey showtime showprocess 30 entr
onkey entr setkey 2
onkey num_entr setkey 2
onkey up   goto item1
onkey down goto item3
call mainkey
goto item2
;


:item3
call menu
transparent on
drawtext pixel 70 240 102    " R   重新引导系统
getkey showtime showprocess 30 entr
onkey entr setkey r
onkey num_entr setkey r
onkey up   goto item2
onkey down goto item4
call mainkey
goto item3
;


:item4
call menu
;调用函数menu
transparent on
;画前景色
drawtext pixel 70 280 102    "ESC  从硬盘启动
;在(70,280)位置以102号色为前景色,显示"ESC  从硬盘启动",
;它会覆盖:menu中的"ESC  从硬盘启动"的着色
getkey showtime showprocess 30 entr
;等待按键,如果30秒没有按键,使用缺省按键entr作为输入。
;在选择了菜单之后仍会有倒计时,等待操作
;它与getkey 30 entr功能相似,但它会出现倒计时和进度条,而getkey 30 entr
;则不会出现
onkey entr setkey esc
;如果按键为Enter,把会执行按键esc键
onkey num_entr setkey esc
;如果按键为Enter(小键盘),把会执行按键esc键
onkey up   goto item3
;如果按键为up(向上的箭头),把会执行item3
onkey down goto item5
;如果按键为down(向下的箭头),把会执行item2
call mainkey
;调用函数mainkey
goto item4
;检测到的按键不是所需的,继续等待
;


:item5
call menu
transparent on
drawtext pixel 70 320 102    "F 1  说  明
getkey showtime showprocess 30 entr
onkey entr setkey f1
onkey num_entr setkey f1
onkey up   goto item4
onkey down goto item1
call mainkey
goto item5
;



:vlk
transparent on
;画前景色
drawtext pixel 70 160 0      " 1   DOS 工具
drawtext pixel 70 200 102    " 2   安装上海市政府版
drawtext pixel 70 240 0      " R   重新引导系统
drawtext pixel 70 280 0      "ESC  从硬盘启动
drawtext pixel 70 320 0      "F 1  说  明
colorblock pixel 255 100 225 280 320
;用255号色画一个色块,左上角坐标为(100, 225),右下角坐标为(280,320)。
drawhline pixel 0 100  280 225
;用0号色画水平线,横坐标为100,280,纵坐标为225
;也许这样解释你会更明白:把点(100,225)和点(280,225)連成一条线
drawhline pixel 0 100  280 320
;用0号色画水平线,横坐标为100,280,纵坐标为320
;把点(100,320)和点(280,320)連成一条线
drawvline pixel 0 100  225 320
;用0号色画垂直线,横坐标为100,纵坐标为225,320
;把点(100,225)和点(100,320)連成一条线
drawvline pixel 0 280 225 320
;用0号色画垂直线,横坐标为280,纵坐标为225,320
;把点(280,225)和点(280,320)連成一条线
drawtext pixel 110 235 120   "请确认执行此操作:
drawtext pixel 120 265 0     "[ 1 ] 确定
drawtext pixel 120 295 0     "[ESC] 取消
goto vlkkey
;跳转到vlkkey
;
;(效果见图2)


:vlkkey
getkey
;检测到的按键不是所需的,继续等待
onkey 1     call  vlkset
onkey esc   call  vlkmenu
call vlkkey
;调用函数vlkkey
;

:vlkmenu
Repaint pixel 99 224 182 97
;重新绘制指定区域的背景,以点(99,224)为坐标,向右延伸182,并向下延伸97
;请不要误解为:左上角坐标为(99,224),右下角坐标为(182,97)
transparent on
;画前景色
goto item2
;返回原菜单(item2)
;

:vlkset
cls
;清屏
cd IMG
;切换到当前目录下的IMG目录
run GHOSTXP.IMG
;在当前目录加载GHOSTXP.IMG
return
;


:dos
transparent on
drawtext pixel 70 160 102    " 1   DOS 工具
drawtext pixel 70 200 0      " 2   安装上海市政府版
drawtext pixel 70 240 0      " R   重新引导系统
drawtext pixel 70 280 0      "ESC  从硬盘启动
drawtext pixel 70 320 0      "F 1  说  明
colorblock pixel 255 100 185 325 400
drawhline pixel 0 100  325 185
drawhline pixel 0 100  325 400
drawvline pixel 0 100  185 400
drawvline pixel 0 325  185 400
drawtext pixel 115 195 0      " 1   DOS 8.0 系统
drawtext pixel 115 215 0      " 2   WIN98 原版启动盘
drawtext pixel 115 235 0      " 3   BIOS 工具
drawtext pixel 115 255 0      " 4   Partition Magic V8.0
drawtext pixel 115 275 0      " 5   NTFS DOS Pro
drawtext pixel 115 295 0      " 6   GHOST V8.0
drawtext pixel 115 315 0      " 7   DM 9.56 通用版
drawtext pixel 115 335 0      " 8   效率源修复程式
drawtext pixel 115 355 0      " 9   HDD Regenerator
drawtext pixel 115 375 0      "ESC  返回主菜单
goto DOSKEY
;

:DOSKEY
getkey
onkey 1     call  dos80
onkey 2     call  win98
onkey 3     call  bios
onkey 4     call  pq80
onkey 5     call  ntfs
onkey 6     call  ghost
onkey 7     call  dm956
onkey 8     call  xly16
onkey 9     call  hdd
onkey esc   call  dosmenu
call DOSKEY
;

:dosmenu
Repaint pixel 99 184 227 217
call item1
;


:win98
cls
cd IMG
run DOS98.IMG
;加载失败
getkey
call drawhelptext
return
;


:dos80
cls
cd IMG
run DOS80.img
;加载失败
getkey
call drawhelptext
return
;

:ntfs
cls
cd IMG
run NTFS2DOS.IMG
;加载失败
getkey
call drawhelptext
return
;

:pq80
cls
cd IMG
run PQ8.IMG
;加载失败
getkey
call drawhelptext
return
;

:dm956
cls
cd IMG
run DM.IMA
;加载失败
getkey
call drawhelptext
return
;

:xly16
cls
cd IMG
run XLY.IMG
;加载失败
getkey
call drawhelptext
return
;

:hdd
cls
cd IMG
run heereg.IMA
;加载失败
getkey
call drawhelptext
return
;

:ghost
cls
cd IMG
run GHOST8.IMG
;加载失败
getkey
call drawhelptext
return
;

:bios
cls
cd IMG
run DOSBIOS.IMG
;加载失败
getkey
call drawhelptext
return
;




:help
; 显示帮助
cls
print
print           Microsoft Windows XP 简体中文恢复光盘
print                                        【 VLK版 】
print                                                Made By je64
print                                    
print       感谢您使用本恢复光盘。
print
print       本光盘是利用Windows xp SP1上海市政府版(VLK)制作而成的万能恢复盘。无任何
print   删减,安装完成后无需上网激活。已经安装了2004年3月19日以前的所有关键更新和推
print   荐更新,并集成安装了常用的软件。
print   
print   使用说明:在恢复后第一次启动时选择正确的高级电源管理模式,如不操作将安装默认
print   的高级电源管理模式,选择时可参照下方的说明。执行后系统将自动完成接下来的操作。
print   进入系统后可直接安装驱动程序。
print     
print   注意:选择错误的电源管理模式可能会引起系统不能正确引导或关机。此时只需更改正
print   确的电源管理模式,或重新执行恢复操作并选择正确的电源管理模式。
print  
print       无须人力干涉,轻松安装系统。
print
print       如果您在使用中有什么问题或有什么好的建议,请与我联系!
print   
print                                          
print     [按任意键返回主菜单]         
print                                               
print        EMail:JE_64@163.COM                                               
print                                                    2004年3月20日
print
;在当前显示位置输出后面的字符串
getkey
;等待操作
batch diskemu.cmd
;在当前目录加载diskemu.cmd,然后从头开始执行
return
;

仔细看过上面的DISKEMU.CMD之后,你或许会有以下的疑问:
1.为什么我在"item1","item2","vlk","dos"中不使用call menu然后再覆盖相应部分?
这是因为这个版本(Dec 25 2002)的DISKEMU.BIN不支持多个的调用函数,如果多次调用函数,
会出现不能调用的结果!就像是“检测到的按键不是所需的,继续等待”。
解决办法将在让"DISKEMU支持VM虚拟机!"中介绍!

2.下面
:vlkmenu
Repaint pixel 99 224 182 97
transparent on
goto item2
;
中的99 224 182 97是如何得出的呢?

简单的说可以用下面的公式来得出:
colorblock pixel 255 100 225 280 320
                     x1  y1  x2  y2
Repaint pixel 99 224 182 97
             x2  y2  w   h
x1-1=x2
y1-1=y2
x2-x1+2=w
y2-y1+2=h
这样是不是形象一点,更容易明白呢!
启动界面:


菜单(图示):



帮助:


相关文章:
DISKEMU与EASYBOOT的完美结合简述!
让DISKEMU支持VM虚拟机!


作者: 随风2004    时间: 2004-10-17 02:41     标题: DISKEMU创作实例!

好文章!!!很受益!!!
作者: wangfang49    时间: 2004-10-17 16:57     标题: DISKEMU创作实例!


作者: 恐龙2004    时间: 2004-10-17 21:26     标题: DISKEMU创作实例!

买完这帖,我吃午饭都没钱了

作者: 水晶叶子    时间: 2004-10-18 01:03     标题: DISKEMU创作实例!

能不能用呀
作者: g1971    时间: 2004-10-25 07:35     标题: DISKEMU创作实例!

汗!要钱?
作者: efish    时间: 2004-10-28 05:00     标题: DISKEMU创作实例!

汗!买完才发现这里已经有人贴了!
作者: 大雨889    时间: 2004-11-2 18:03     标题: DISKEMU创作实例!

要钱,就是鼓励大家灌水。
作者: huawenxue    时间: 2004-11-3 00:07     标题: DISKEMU创作实例!

好是好阿
那就顶一下
我希望我们都不要有限制就好了
作者: 菜蜂    时间: 2004-11-3 04:26     标题: DISKEMU创作实例!

还是EZBOOT做来得快
作者: wycant    时间: 2004-11-3 09:11     标题: DISKEMU创作实例!

有空再研究,,谢谢
作者: trhmm    时间: 2004-11-4 18:28     标题: DISKEMU创作实例!

引用:
下面引用由沙同2004/06/28 08:49pm 发表的内容:
尊敬的je64,你何必设置壁垒,象我这种菜鸟不学习哪能提高呢!?请解除限制!
严重同意!
作者: cheetah    时间: 2004-11-5 13:07     标题: DISKEMU创作实例!

thanks!!!
作者: g1971    时间: 2004-11-5 16:26     标题: DISKEMU创作实例!

学习学习……
作者: 袋鼠    时间: 2004-11-6 19:13     标题: DISKEMU创作实例!

给个破解版的下载地址
作者: hnyujian    时间: 2004-11-8 20:57     标题: DISKEMU创作实例!

正式我要的东西,我顶
作者: Linuxsmile    时间: 2004-11-10 21:16     标题: DISKEMU创作实例!

发一贴,看看自己有多少钱
作者: Linuxsmile    时间: 2004-11-10 21:29     标题: DISKEMU创作实例!

咋的看不到图??
作者: yccj    时间: 2004-11-15 07:24     标题: DISKEMU创作实例!

买了 明天来研究了!谢谢分享!
作者: olivery    时间: 2004-11-15 10:23     标题: DISKEMU创作实例!

我能够买,谢谢了,非常需要
作者: I服了U    时间: 2004-11-15 16:27     标题: DISKEMU创作实例!


没办法现在没钱,看不到!!!
作者: 无色    时间: 2004-11-18 06:26     标题: DISKEMU创作实例!

你狠哦,不过我还是愿意付出地
作者: Jaloon    时间: 2004-11-20 21:37     标题: DISKEMU创作实例!

dddd
作者: lzh1971    时间: 2004-11-20 23:01     标题: DISKEMU创作实例!

不要说东西贵了,知识本身就是无价的.我不鼓励楼主的这种做法但
随便的来的东西就不知道珍惜了.100的确是贵了点,有的人的确很穷
下次希望楼主便宜点.
作者: wxxnet    时间: 2004-11-21 05:33     标题: DISKEMU创作实例!

我很想学习学习呀!
作者: yiyi    时间: 2004-11-23 03:28     标题: DISKEMU创作实例!

真的可惜阿,我干干注册,但是我的money不够,真的是气死人。
作者: 5732692    时间: 2004-11-24 01:21     标题: DISKEMU创作实例!

晕啊
为什么要钱啊
作者: eric917    时间: 2004-11-30 03:37     标题: DISKEMU创作实例!

好像不错哦,只是好像没有界面化而已
作者: KENRYU    时间: 2004-12-2 06:45     标题: DISKEMU创作实例!

很好
收藏
作者: dindy    时间: 2004-12-7 07:42     标题: DISKEMU创作实例!

我是新手。請多多指教。。。
一定要學好BAT文件的寫作是嗎?
作者: 加尔伏特    时间: 2004-12-21 19:23     标题: DISKEMU创作实例!

真是受益非浅呀.这里真是臣虎藏龙之地呀
作者: sblinux    时间: 2004-12-30 00:24     标题: DISKEMU创作实例!

问一个初级的问题:diskemu 支持鼠标吗
作者: je64    时间: 2004-12-30 17:58     标题: DISKEMU创作实例!

不支持~
作者: sblinux    时间: 2004-12-31 00:49     标题: DISKEMU创作实例!

晕呀,那位大侠动动手呀,不支持鼠标很不顺手的呀,我还想用它做一个动态的启动画面呢。没有鼠标做出来效果也不好呀。
作者: 84042776    时间: 2004-12-31 20:57     标题: DISKEMU创作实例!

ddddddddddd

作者: wmhsing    时间: 2005-1-5 05:06     标题: DISKEMU创作实例!

真是受益良多太感谢了
作者: tingjie    时间: 2005-1-7 01:40     标题: DISKEMU创作实例!

真是好文章
感謝大大分享
作者: lea999    时间: 2005-1-17 18:43     标题: DISKEMU创作实例!

多谢 顶 顶 长知识




欢迎光临 EZB 论坛 (http://ultraiso.net/ezbbbs/) Powered by Discuz! 6.1.0