公司接到国外客户的U盘订单,要求U盘插入电脑后自动弹出一段视频,以达到广告宣传的目的。
U盘主控采用深圳的芯邦方案(ChipsBand),能够直接实现AUTORUN技术,因此总结视频AUTORUN的方法如下几种:
1. 芯邦自带的AUTORUN程序;
2. 视频转换为可直接执行的EXE文件;
3. 利用现成的单文件小巧型播放器来播放。
一、芯邦自带的AUTORUN程序
芯邦的AUTORUN程序包中包括有如下文件:
Autosvr.exe 自动载入程序,内含Windrives.exe文件
Loader.exe 用途不详,照文件名猜测是作为程序载入用途
Playmedia.exe 媒体播放器
autorun.inf 这个不用说了,AUTORUN的首要文件
autorun.exe 芯邦图片演示文件
其中Autorun.inf包括如下内容:
[autorun]
ICON=AUTORUN.ICO (图标设置,可以不要)
OPEN=Loader.EXE
CLIENT_FILE=autorun.exe
实验A:
假设客户视频文件名为demo.wmv,则Autorun.inf内容为:
[autorun]
OPEN=Loader.EXE
CLIENT_FILE=demo.wmv
然后将Autorun.inf,Autosvr.exe, loader.exe, demo.wmv四个文件车换为ISO光盘镜像文件,用芯邦量产工具
将ISO文件烧写入U盘,拨出U盘重插入电脑,则程序会调用XP自带的WMP播放器来播放demo.wmv文件。
实验B:
假设客户视频文件名为demo.mpg,则Autorun.inf内容为:
[autorun]
OPEN=Loader.EXE
CLIENT_FILE=demo.mpg
然后与实验A一样烧入四个文件,你会发现,电脑提示找不到Playmedia程序,这就是问题所在,
很奇怪,放MPG格式视频时不再调用XP自带的WMP播放器,非Playmedia不可,那好,加入Playmedia.exe文件重新
烧写一次,这次就可以了~
总结:
U盘烧写完毕后第一次插入电脑,Autosvr.exe首先会自动执行,并会有如下的小动作:
1. 复制U盘CDFS分区中的所有文件到TEMP的一个目录下(目录名这几个数字)
2. 在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下增加c:\windows\Windrives.exe键值;
3. 由2可知,在c:\windows目录下,增加了一个Windrives.exe文件
4. 在启动项自行启动Windrives.exe,可用Msconfig看到
5. Autosvr.exe和Windrives.exe会长驻在进程中,浪费内存
上述几个小动作完成后,并不一定会有视频窗口弹出,郁闷吧!通常还要重插一次才有结果,比揭新娘红头巾还难!~
有人会说,这不就OK了吗?我会大声地说:不!
首先,程序的小动作太多了,因为程序要改动注册表,装了防病毒软件的电脑大都会跳出一个询问窗口是否要修改,
对于用户来说是个不好的事情,大多数电脑用户的第一反应可能是病毒!并且容易吓坏路边的花花草草!
还有我手上的量产工具中,Autosvr.exe会第一时间让瑞星杀毒软件报警,提示是Trojan.agent.bkw病毒,看来该程序
容易成为木马的藏身之地,恐怖!
其次,第一次插入U盘时通常是没有视频出来的,站在客户的角度来看,达不到一触即发的广告效果!
所以,芯邦的视频AUTORUN,我先废了它的武功!
二、视频转换为可直接执行的EXE文件
能够将视频直接转换为EXE文件,目前我所知道的是VideoImpression视频处理软件。
先用V1.6版做实验,只能认识AVI和MPG,转换出来的EXE文件有点偏大,播放器也在里面了,假设文件为demo.exe
配合如下Autorun.inf内容:
[autorun]
OPEN=demo.exe
然后将Autorun.inf和demo.exe做成ISO文件烧写入U盘,U盘第一次插入电脑,找完硬件后就成功Autorun了!
但还是不满意,因为转换出来的视频只限于320*240分辨率,视频窗口很小,不能人工放大,播放也有点迟顿~
驱猫上网下载V2.0版再次尝试,结果很失望,结果和V1.6版一样,播放器界面中还有了软件公司的网址,而且
EXE文件的体积更是大了一倍,全身上下都很不爽!
总结:不理想,除非有更好的转换软件,暂时放弃!
三、利用现成的单文件小巧型播放器来播放
上网找了好久都不找到合适的单文件小巧型播放器,又对芯邦的playmedia.exe文件打起了馊主意。
此程序是调用Window Media player控件做的小巧型播放器,咱们尝试换个方法利用它干活~
双击此程序发现它不干活,提示没有视频文件,界面中也没有任何菜单和按钮,连右键菜单都禁了,BS芯邦一下!
于是执行CMD到DOS界面,输入 playmedia demo.mpg(两个文件在同一目录中),好,能够播放了,我真聪明*¥#^&
配合如下Autorun.inf内容:
[autorun]
OPEN=playermedia demo.mpg
然后将Autorun.inf和demo.mpg做成ISO文件烧写入U盘,U盘找完硬件后就成功Autorun了,爽!再试N次均成功,大喜!
次日即将U盘样品寄于地球另一边的客户,数日后客人复:视频的Autorun相当Perfect,但就是有一窗口跳出提示XX错误!
我倒!谁在害我啊!立马将另一个样品上机测试,插拨数次后果然多蹦出了一个XX窗口,定睛一看,是提示找不到
playermedia demo.mpg文件字样,意思那是在路径中找不到两个文件,我要晕菜了~~
苦思数天不得其解~~~ 太矛盾了,一个窗口在放视频,另一个窗口说找不到文件,没天理!放弃算了吧,另想办法东山
再起。。。难到一个AUTORUN就把我放倒了~~ 真的不服耶!
尝试用VB写一个程序,在程序里调用playmedia带/demo.mpg参数,可是我有两年多没碰过VB了,弄了一会不成又恢心了。
郁闷了几个小时......
四、回光反照,天外有天
又郁闷了几分钟......
嘿,一个邪恶的念头一涌而出,何不自已写一个播放器,内部固定调用一个视频文件名,这就跳开带参数调用外部程序了!
不出几分钟,凭我自小就不太聪明的脑瓜子,播放器很快做出来了,命名为Autoplayer.exe,够专业吧,嘻嘻!
至于源程序就不用看了吧,会VB或VC的兄弟姐妹都会写滴~~ 什么?不知道VB是什么?我向你投降~~
配合如下Autorun.inf内容:
[autorun]
OPEN=Autoplayer.exe
将Autorun.inf, Autoplayer.exe和demo.wmv做成ISO文件烧写入U盘,不出所料,完美地Autorun了,不禁大喜!
几个小时内不断插拨U盘,没有出现任何问题,再到其它几台电脑测试,Perfect!
咳~咳~,总结一下程序优点(自卖自夸~)
1. 不向硬盘写入任何文件,不改动注册表,内存不加载文件;
2. 保证U盘第一次插入即可出现视频;
3. 视频窗口大小由自已程序编写,标题栏可加入客户文字信息;
4. 视频窗口为最顶显示,不用担心其它无关窗口遮挡;
5. 视频窗口在不同分辨率的显示器中,可以自动置中;
6. 播放窗口可任意调整大小;
7. 自行设置循环播放的次数;
8. 还没想到呢...
到此,完美收场,看看表也是凌晨一点整,打字打到手软了,该好好睡一觉了。。。
bye bye 咯~~
============================================================
以上文章为PUIMEN原创,转贴或引用请注明来自本BLOG,谢谢你对作者的尊重!
Email: coolman99@163.com
转发至微博
转发至微博
评论