Программное обеспечение проигрывателя VCD, такое как «Super Jieba», обычно имеет кнопку или пункт меню «Воспроизвести 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:/")<>5Then
IfGetDriveType("e:/")<>5Then
IfGetDriveType("f:/")<>5Then
IfGetDriveType("g:/")<>5Then
дисккд="H"
GoTogetcdfiles
КонецЕсли
дисккд="G"
GoTogetcdfiles
КонецЕсли
дисккд="F"
GoTogetcdfiles
КонецЕсли
дисккд="Е"
GoTogetcdfiles
Еще
дисккд="Д"
КонецЕсли
получитьcdfiles:
Программа использует исчерпывающий метод, чтобы определить, является ли тип устройства дисков 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"Псевдоним"GetDriveTypeA"(ByValnDriveAsString)AsLong
Dimfiles()AsString
DimdrivecdAsString
ДимиАсИнтегер
DimjAsInteger
PrivateSubForm_Load()
'Определяем букву привода компакт-дисков
IfGetDriveType("d:/")<>5Then
IfGetDriveType("e:/")<>5Then
IfGetDriveType("f:/")<>5Then
IfGetDriveType("g:/")<>5Then
дисккд="H"
GoTogetcdfiles
КонецЕсли
дисккд="G"
GoTogetcdfiles
КонецЕсли
дисккд="F"
GoTogetcdfiles
КонецЕсли
дисккд="Е"
GoTogetcdfiles
Еще
дисккд="Д"
КонецЕсли
'Помещаем все файлы VCD в файлы массива()
получитьcdfiles:
ОнОшибкаГоТокдерр:
s=Dir(drivecd&":/Mpegav/*.dat")
я = 1
Пока<>""
ReDimPreservefiles(i)AsString
файлы(я)=s
я = я 1
s=Дир()
Венд
j=1
Callvcdplay
Онерроргото0
ВыходSub
cderr:
MsgBox"CDisnotready!"
Разгрузить меня
EndSub
'Определяем, воспроизводить ли следующий файл
PrivateSubMMControl1_StatusUpdate()
ЕслиMMControl1.Position=MMControl1.LengthThen
j=j 1
Еслиj>i-1Тогда=1
Callvcdplay
КонецЕсли
EndSub
'Воспроизвести VCD-файл
PrivateSubvcdplay()
MMControl1.Command="стоп"
MMControl1.Command="закрыть"
MMControl1.FileName=drivecd&":/Mpegav/"&files(j)
MMControl1.Command="открыть"
MMControl1.Command="играть"
EndSub
Вышеуказанная программа перешла на китайскую Windows98 и VisualBasic6.0. ->