「Super Jieba」などの VCD プレーヤー ソフトウェアには、通常、「VCD の再生」というボタンまたはメニュー オプションがあり、クリックすると VCD ムービーが自動的に再生されます。ファイル パスが固定されている場合は、マルチメディア コントロール (mmcontrol) のみを使用して実現できます。ただし、コンピュータが異なると、ハードディスク上の論理パーティションの数が異なるため、光ディスク ドライブのパスが異なる可能性があります。違う。それはどのように達成されるのでしょうか?以下に私の詳細な分析をご覧ください。
「regedit.exe」を使用して、Windows 98 レジストリ内の CD-ROM ドライブの属性項目 (hkey_local_machine、enum、scsi) を表示し、ハードディスク ドライブの属性項目 (hkey_local_machine、enum、esdi) をフロッピーと比較します。ディスクドライブ
属性項目 (hkey_local_machine、enum、flop) を確認すると、さまざまなディスク本体がパラメータ「devicetype」によって区別されます。ハードディスクのデバイスタイプは「0」、フロッピー ディスクは「0a」、光ディスク ドライブは「0a」です。は「5」」です。次に、キーワードとして「devicetype」を使用して win32API に関するプログラミング マニュアルを検索すると、さまざまなディスクを識別する関数「getdevicetype」を取得できます。
この関数を使用すると、次の文を使用して CD-ROM ドライブのドライブ文字を取得できます。
IfGetDriveType("d:/")<>5Then
IfGetDriveType("e:/")<>5Then
IfGetDriveType("f:/")<>5Then
IfGetDriveType("g:/")<>5Then
ドライブcd="H"
GoTogetcdfiles
EndIf
ドライブcd="G"
GoTogetcdfiles
EndIf
ドライブcd="F"
GoTogetcdfiles
EndIf
ドライブcd="E"
GoTogetcdfiles
それ以外
ドライブcd="D"
EndIf
CDファイルの取得:
プログラムは、D、E、F、G ディスクのデバイス タイプが「5」であるかどうかを網羅的に判断します。そうでない場合、光ディスク ドライブは H です (ドライブ文字が H を超えるマシンは多くありません)。したがって、完全なリストはここで終わります)、「drivecd」は CD-ROM ドライブのドライブ文字です。
すべての VCD ムービーのパスは /mpegav/ であるため、VB 関数「Dir()」を使用して完全な再生パスを取得できます。
MMControl1.FileName=drivecd&":/Mpegav/"&Dir(drivecd&":/Mpegav/*.dat")。
次のソース プログラムは、具体的には VCD の自動再生を実装しています。プログラム フォームには、MMcontrol1 というマルチメディア コントロールが 1 つだけあります。プログラムが実行されると、マルチメディア コントロールの「次へ」キーを押すと、次のファイルが再生されます。
'GetDriveType関数を宣言します
PRivateDeclareFunctionGetDriveTypeLib"kernel32"Alias"GetDriveTypeA"(ByValnDriveAsString)AsLong
Dimfiles()AsString
DimdrivecdAsString
DimiAsInteger
DimjAsInteger
PrivateSubForm_Load()
'CD-ROMドライブのドライブ文字を確認します
IfGetDriveType("d:/")<>5Then
IfGetDriveType("e:/")<>5Then
IfGetDriveType("f:/")<>5Then
IfGetDriveType("g:/")<>5Then
ドライブcd="H"
GoTogetcdfiles
EndIf
ドライブcd="G"
GoTogetcdfiles
EndIf
ドライブcd="F"
GoTogetcdfiles
EndIf
ドライブcd="E"
GoTogetcdfiles
それ以外
ドライブcd="D"
EndIf
'すべての VCD ファイルを配列ファイルに配置します()
CDファイルの取得:
OnErrorGoTocderr:
s=Dir(ドライブcd&":/Mpegav/*.dat")
i=1
その間<>""
ReDimPreservefiles(i)AsString
ファイル(i)=s
i=i1
s=ディレクトリ()
ウェン
j=1
Callvcdplay
OnErrorGoTo0
ExitSub
エラー:
MsgBox「CDisnotready!」
アンロードミー
EndSub
'次のファイルを再生するかどうかを決定
PrivateSubMMControl1_StatusUpdate()
IfMMControl1.Position=MMControl1.LengthThen
j=j 1
Ifj>i-1Thenj=1
Callvcdplay
EndIf
EndSub
'VCDファイルを再生
PrivateSubvcdplay()
MMControl1.Command="停止"
MMControl1.Command="閉じる"
MMControl1.FileName=drivecd&":/Mpegav/"&files(j)
MMControl1.Command="開く"
MMControl1.Command="再生"
EndSub
上記プログラムは中華Windows98とVisualBasic6.0に合格しました。 ->