VCD-Player-Software wie „Super Jieba“ verfügt im Allgemeinen über eine Schaltfläche oder Menüoption namens „VCD abspielen“, um VCD-Filme automatisch abzuspielen. Wenn der Dateipfad festgelegt ist, kann er nur über die Multimedia-Steuerung (mmcontrol) erreicht werden. Da die Anzahl der logischen Partitionen auf der Festplatte jedoch unterschiedlich ist, ist es wahrscheinlich, dass der Pfad das optische Laufwerk ist anders. Wie wird es erreicht? Nachfolgend finden Sie meine detaillierte Analyse:
Verwenden Sie „regedit.exe“, um die Attributelemente des CD-ROM-Laufwerks (hkey_local_machine, enum, scsi) in der Windows 98-Registrierung anzuzeigen und die Attributelemente des Festplattenlaufwerks (hkey_local_machine, enum, esdi) mit der Diskette zu vergleichen Diskettenlaufwerk
Attributelemente (hkey_local_machine, enum, flop) finden Sie: Verschiedene Festplattenkörper werden durch den Parameter „devicetype“ unterschieden. Der Gerätetyp der Festplatte ist „0“, der Diskette ist „0a“ und des optischen Laufwerks ist „5“ „. Verwenden Sie dann „devicetype“ als Schlüsselwort, um nach dem Programmierhandbuch für win32API zu suchen, und Sie können die Funktion „getdevicetype“ erhalten, die verschiedene Festplatten identifiziert.
Mit dieser Funktion können Sie den Laufwerksbuchstaben des CD-ROM-Laufwerks mit dem folgenden Satz ermitteln:
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
Anders
drivecd="D"
EndIf
getcdfiles:
Das Programm verwendet die erschöpfende Methode, um zu bestimmen, ob der Gerätetyp der Datenträger D, E, F und G „5“ ist. Ist dies nicht der Fall, ist das optische Laufwerk H (es gibt nicht viele Maschinen mit Laufwerksbuchstaben größer als H). , daher endet die erschöpfende Liste hier), und wir erhalten „drivecd“ ist der Laufwerksbuchstabe des CD-ROM-Laufwerks.
Da der Pfad aller VCD-Filme /mpegav/ ist, können Sie die VB-Funktion „Dir()“ verwenden, um den vollständigen Wiedergabepfad zu erhalten:
MMControl1.FileName=drivecd&":/Mpegav/"&Dir(drivecd&":/Mpegav/*.dat").
Das folgende Quellprogramm implementiert speziell die automatische VCD-Wiedergabe. Es gibt nur eine Multimedia-Steuerung im Programmformular – MMcontrol1. Sobald das Programm ausgeführt wird, wird die erste Datei automatisch abgespielt. Drücken Sie die „Weiter“-Taste auf der Multimedia-Steuerung, um die nächste Datei abzuspielen.
'Deklarieren Sie die GetDriveType-Funktion
PRivateDeclareFunctionGetDriveTypeLib"kernel32"Alias"GetDriveTypeA"(ByValnDriveAsString)AsLong
Dimfiles()AsString
DimdrivecdAsString
DimiAsInteger
DimjAsInteger
PrivateSubForm_Load()
'Ermitteln Sie den Laufwerksbuchstaben des CD-ROM-Laufwerks
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
Anders
drivecd="D"
EndIf
'Füge alle VCD-Dateien in Array-Dateien ein()
getcdfiles:
OnErrorGoTocderr:
s=Dir(drivecd&":/Mpegav/*.dat")
i=1
Whiles<>""
ReDimPreservefiles(i)AsString
Dateien(i)=s
i=i 1
s=Dir()
Wend
j=1
Callvcdplay
OnErrorGoTo0
ExitSub
cderr:
MsgBox „CDisnotready!“
Entlade mich
EndSub
'Bestimmen Sie, ob die nächste Datei abgespielt werden soll
PrivateSubMMControl1_StatusUpdate()
IfMMControl1.Position=MMControl1.LengthThen
j=j 1
Wennj>i-1Thenj=1
Callvcdplay
EndIf
EndSub
'VCD-Datei abspielen
PrivateSubvcdplay()
MMControl1.Command="stop"
MMControl1.Command="close"
MMControl1.FileName=drivecd&":/Mpegav/"&files(j)
MMControl1.Command="open"
MMControl1.Command="play"
EndSub
Das obige Programm hat das chinesische Windows98 und VisualBasic6.0 weitergegeben. ->