يحتوي برنامج مشغل VCD مثل "Super Jieba" عمومًا على زر أو خيار قائمة يسمى "Play VCD" انقر لتشغيل أفلام VCD تلقائيًا. إذا تم إصلاح مسار الملف، فيمكن تحقيقه باستخدام التحكم في الوسائط المتعددة فقط (mmcontrol). ومع ذلك، بالنسبة لأجهزة الكمبيوتر المختلفة، نظرًا لاختلاف عدد الأقسام المنطقية على القرص الثابت، فمن المحتمل أن يكون مسار محرك الأقراص الضوئية ثابتًا. مختلف. كيف يتم تحقيق ذلك؟ أدناه، يرجى الاطلاع على تحليلي التفصيلي:
استخدم "regedit.exe" لعرض عناصر سمات محرك الأقراص المضغوطة (hkey_local_machine، enum، scsi) في سجل Windows 98، ومقارنة عناصر سمات محرك الأقراص الثابتة (hkey_local_machine، enum، esdi) مع القرص المرن محرك الأقراص
عناصر السمات (hkey_local_machine، enum، flop)، يمكنك العثور على: يتم تمييز أجسام الأقراص المختلفة بواسطة المعلمة "devicetype". نوع جهاز القرص الصلب هو "0"، والقرص المرن هو "0a"، ومحرك الأقراص الضوئية هو "5" ". ثم استخدم "devicetype" ككلمة رئيسية للبحث عن دليل البرمجة حول win32API، ويمكنك الحصول على وظيفة "getdevicetype" التي تحدد الأقراص المختلفة.
باستخدام هذه الوظيفة، يمكنك الحصول على حرف محرك الأقراص المضغوطة باستخدام الجملة التالية:
IfGetDriveType("d:/")<>5ثم
IfGetDriveType("e:/")<>5ثم
IfGetDriveType("f:/")<>5ثم
IfGetDriveType("g:/")<>5ثم
محرك الأقراص = "H"
GoTogetcdfiles
EndIf
محرك الأقراص = "G"
GoTogetcdfiles
EndIf
محرك الأقراص = "F"
GoTogetcdfiles
EndIf
محرك الأقراص = "E"
GoTogetcdfiles
آخر
محرك الأقراص = "د"
EndIf
ملفات Getcd:
يستخدم البرنامج الطريقة الشاملة لتحديد ما إذا كان نوع الجهاز للأقراص D وE وF وG هو "5". وإذا لم يكن كذلك، فإن محرك الأقراص الضوئية هو H (لا توجد العديد من الأجهزة التي تحتوي على أحرف محركات أقراص تتجاوز H ، وبذلك تنتهي القائمة الشاملة هنا)، ونحصل على "drivecd" وهو حرف محرك الأقراص لمحرك الأقراص المضغوطة.
نظرًا لأن مسار كافة أفلام VCD هو /mpegav/، يمكنك استخدام وظيفة VB "Dir()" للحصول على مسار التشغيل الكامل:
MMControl1.FileName=drivecd&":/Mpegav/"&Dir(drivecd&":/Mpegav/*.dat").
يقوم البرنامج المصدر التالي على وجه التحديد بتنفيذ تشغيل VCD التلقائي. يوجد عنصر تحكم واحد فقط للوسائط المتعددة في نموذج البرنامج - MMcontrol1. بمجرد تشغيل البرنامج، سيتم تشغيله تلقائيًا من الملف الأول. اضغط على مفتاح "التالي" في عنصر تحكم الوسائط المتعددة لتشغيل الملف التالي.
'قم بتعريف وظيفة GetDriveType
PRivateDeclareFunctionGetDriveTypeLib"kernel32"Alias"GetDriveTypeA"(ByValnDriveAsString)AsLong
Dimfiles()AsString
DimdrivecdAsString
DimiAsInteger
DimjAsInteger
PrivateSubForm_Load()
"تحديد حرف محرك الأقراص لمحرك الأقراص المضغوطة."
IfGetDriveType("d:/")<>5ثم
IfGetDriveType("e:/")<>5ثم
IfGetDriveType("f:/")<>5ثم
IfGetDriveType("g:/")<>5ثم
محرك الأقراص = "H"
GoTogetcdfiles
EndIf
محرك الأقراص = "G"
GoTogetcdfiles
EndIf
محرك الأقراص = "F"
GoTogetcdfiles
EndIf
محرك الأقراص = "E"
GoTogetcdfiles
آخر
محرك الأقراص = "د"
EndIf
'ضع كافة ملفات VCD في ملفات المصفوفة ()
ملفات Getcd:
أونيرورجوتوكدير:
s=Dir(drivecd&":/Mpegav/*.dat")
أنا = 1
بينما<>""
ReDimPreservefiles(i)AsString
الملفات (ط) = ق
ط = ط 1
الصورة = دير ()
ويند
ي=1
Callvcdplay
OnErrorGoTo0
ExitSub
كدير:
MsgBox"القرص غير جاهز!"
UnloadMe
EndSub
"تحديد ما إذا كنت تريد تشغيل الملف التالي."
PrivateSubMMControl1_StatusUpdate()
IfMMControl1.Position=MMControl1.LengthThen
ي=ي 1
إذاj>i-1ثمj=1
Callvcdplay
EndIf
EndSub
"تشغيل ملف VCD."
برايفتسوبفكدبلاي ()
MMControl1.Command = "توقف"
MMControl1.Command = "إغلاق"
MMControl1.FileName=drivecd&":/Mpegav/"&files(j)
MMControl1.Command = "فتح"
MMControl1.Command = "تشغيل"
EndSub
تم تمرير البرنامج أعلاه على Windows98 الصيني وVisualBasic6.0. ->