在VisualBasic6.0中实现自动播放VCD

识缘SY

识缘SY

2016-02-19 17:53

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的在VisualBasic6.0中实现自动播放VCD,希望大家看完后能赶快学习起来。
《超级解霸》等VCD播放软件一般都有个按钮或菜单选项,叫做“播放VCD”,单击即可自动播放VCD影片。如果文件路径是固定的,那只用多媒体控件(mmcontrol)即可实现,但对于不同电脑来说,因为硬盘的逻辑分区数量不同,光盘机的路径很可能是不同的。它到底是怎样实现的呢?下面,请看我详细分析:
  
  用“regedit.exe”查看Windows98的注册表中光盘机的属性项(hkey_local_machine,enum,scsi),比较硬盘机的属性项(hkey_local_machine,enum,esdi)和软盘机
  的属性项(hkey_local_machine,enum,flop),就可发现:不同的盘体,是用“devicetype”这个参数来区别的,硬盘的devicetype是“0”,软盘是“0a”,光盘机是“5”。再用“devicetype”为关键字,查找有关win32API的编程手册,就可得到辨别不同盘体的函数“getdevicetype”了。
  
  有了这个函数,使用以下句子,即可得到光盘机盘符:
  
  IfGetDriveType("d:")5Then
  IfGetDriveType("e:")5Then
  IfGetDriveType("f:")5Then
  IfGetDriveType("g:")5Then
  drivecd="H"
  GoTogetcdfiles
  EndIf
  drivecd="G"
  GoTogetcdfiles
  EndIf
  drivecd="F"
  GoTogetcdfiles
  EndIf
  drivecd="E"
  GoTogetcdfiles
  Else
  drivecd="D"
  EndIf
  getcdfiles:
  
  程序使用穷举法,依次判断D、E、F、G盘的devicetype是否为“5”,都不是则光盘机为H(盘符超过H的机器不多,所以穷举到此为止),得到的“drivecd”就是光盘机盘符。
  
  因为所有VCD影片的路径都是mpegav,所以用VB函数"Dir()"便可得到完整的播放路径:
  MMControl1.FileName=drivecd&":Mpegav"&Dir(drivecd&":Mpegav*.dat")。
  
  以下源程序,具体实现了自动播放VCD。程序窗体中只有一个多媒体控件——MMcontrol1,程序一旦运行即从第一个文件开始自动播放,按多媒体控件上的“next”键,播放下一个文件。
  
  '声明GetDriveType函数
  PrivateDeclareFunctionGetDriveTypeLib"kernel32"Alias"GetDriveTypeA"(ByValnDriveAsString)AsLong
  Dimfiles()AsString
  DimdrivecdAsString
  DimiAsInteger
  DimjAsInteger
  
  PrivateSubForm_Load()
  '判断光盘机盘符
  IfGetDriveType("d:")5Then
  IfGetDriveType("e:")5Then
  IfGetDriveType("f:")5Then
  IfGetDriveType("g:")5Then
  drivecd="H"
  GoTogetcdfiles
  EndIf
  drivecd="G"
  GoTogetcdfiles
  EndIf
  drivecd="F"
  GoTogetcdfiles
  EndIf
  drivecd="E"
  GoTogetcdfiles
  Else
  drivecd="D"
  EndIf
  
  '将所有VCD文件放入数组files()
  getcdfiles:
  OnErrorGoTocderr:
  s=Dir(drivecd&":Mpegav*.dat")
  i=1
  Whiles""
  ReDimPreservefiles(i)AsString
  files(i)=s
  i=i 1
  s=Dir()
  Wend
  j=1
  Callvcdplay
  
  OnErrorGoTo0
  ExitSub
  cderr:
  MsgBox"CDisnotready!"
  UnloadMe
  EndSub
  
  '判断是否播放下一个文件
  PrivateSubMMControl1_StatusUpdate()
  IfMMControl1.Position=MMControl1.LengthThen
  j=j 1
  Ifji-1Thenj=1
  Callvcdplay
  EndIf
  EndSub
  
  '播放VCD文件
  PrivateSubvcdplay()
  MMControl1.Command="stop"
  MMControl1.Command="close"
  MMControl1.FileName=drivecd&":Mpegav"&files(j)
  MMControl1.Command="open"
  MMControl1.Command="play"
  EndSub
  
  以上程序在中文Windows98,VisualBasic6.0上通过。->

展开更多 50%)
分享

猜你喜欢

在VisualBasic6.0中实现自动播放VCD

编程语言 网络编程
在VisualBasic6.0中实现自动播放VCD

在Visual Basic 6.0中实现自动播放VCD

编程语言 网络编程
在Visual Basic 6.0中实现自动播放VCD

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在VisualBasic6.0中创建Word文档

编程语言 网络编程
在VisualBasic6.0中创建Word文档

巧用VB编程使XMPLAYER自动播放VCD

编程语言 网络编程
巧用VB编程使XMPLAYER自动播放VCD

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

关于VisualBasic6.0类开发

编程语言 网络编程
关于VisualBasic6.0类开发

在Windows 8中禁用自动播放与运行功能

windows系统
在Windows 8中禁用自动播放与运行功能

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

提升网页打开速度的八个实用方法

提升网页打开速度的八个实用方法

Access新手来看:如何更改表/窗体/报表...得名字

Access新手来看:如何更改表/窗体/报表...得名字
下拉加载更多内容 ↓