Softwares reprodutores de VCD como "Super Jieba" geralmente possuem um botão ou opção de menu chamada "Reproduzir VCD". Clique para reproduzir filmes VCD automaticamente. Se o caminho do arquivo for fixo, isso poderá ser feito usando apenas o controle de multimídia (mmcontrol). No entanto, para computadores diferentes, como o número de partições lógicas no disco rígido é diferente, o caminho da unidade de disco óptico provavelmente será o mesmo. diferente. Como isso é alcançado? Abaixo, veja minha análise detalhada:
Use "regedit.exe" para visualizar os itens de atributos da unidade de CD-ROM (hkey_local_machine, enum, scsi) no registro do Windows 98 e compare os itens de atributos da unidade de disco rígido (hkey_local_machine, enum, esdi) com o disquete unidade de disco
Itens de atributos (hkey_local_machine, enum, flop), você pode encontrar: diferentes corpos de disco são diferenciados pelo parâmetro "devicetype". O tipo de dispositivo do disco rígido é "0", o disquete é "0a" e a unidade de disco óptico. é "5" ". Em seguida, use "devicetype" como palavra-chave para pesquisar o manual de programação sobre win32API e você poderá obter a função "getdevicetype" que identifica diferentes discos.
Com esta função, você pode obter a letra da unidade de CD-ROM usando a seguinte frase:
IfGetDriveType("d:/")<>5Então
IfGetDriveType("e:/")<>5Então
IfGetDriveType("f:/")<>5Então
IfGetDriveType("g:/")<>5Então
drivecd="H"
GoTogetcdfiles
FimSe
unidadecd = "G"
GoTogetcdfiles
FimSe
unidadecd = "F"
GoTogetcdfiles
FimSe
unidadecd = "E"
GoTogetcdfiles
Outro
unidadecd = "D"
FimSe
obter arquivos cd:
O programa usa o método exaustivo para determinar se o tipo de dispositivo dos discos D, E, F e G é "5". Caso contrário, a unidade de disco óptico é H (não há muitas máquinas com letras de unidade superiores a H). , então a lista exaustiva termina aqui), e obtemos O "drivecd" é a letra da unidade de CD-ROM.
Como o caminho de todos os filmes VCD é /mpegav/, você pode usar a função VB "Dir()" para obter o caminho completo de reprodução:
MMControl1.FileName=drivecd&":/Mpegav/"&Dir(drivecd&":/Mpegav/*.dat").
O programa fonte a seguir implementa especificamente a reprodução automática de VCD. Existe apenas um controle multimídia no formato do programa - MMcontrol1. Assim que o programa for executado, ele será reproduzido automaticamente a partir do primeiro arquivo. Pressione a tecla “próximo” no controle multimídia para reproduzir o próximo arquivo.
'Declara a função GetDriveType
PRivateDeclareFunctionGetDriveTypeLib"kernel32"Alias"GetDriveTypeA"(ByValnDriveAsString)AsLong
Dimfiles()AsString
DimdrivecdAsString
DimiAsInteger
DimjAsInteger
PrivateSubForm_Load()
'Determina a letra da unidade de CD-ROM
IfGetDriveType("d:/")<>5Então
IfGetDriveType("e:/")<>5Então
IfGetDriveType("f:/")<>5Então
IfGetDriveType("g:/")<>5Então
drivecd="H"
GoTogetcdfiles
FimSe
unidadecd = "G"
GoTogetcdfiles
FimSe
unidadecd = "F"
GoTogetcdfiles
FimSe
unidadecd = "E"
GoTogetcdfiles
Outro
unidadecd = "D"
FimSe
'Coloca todos os arquivos VCD em arquivos array()
obter arquivos cd:
OnErrorGoTocderr:
s=Dir(drivecd&":/Mpegav/*.dat")
eu=1
Enquanto<>""
ReDimPreservefiles(i)AsString
arquivos(i)=s
eu = eu 1
s=Dir()
Wend
j=1
Chamarvcdplay
OnErrorGoTo0
SairSub
cderr:
MsgBox"CD não está pronto!"
Descarregar-me
Fim Sub
'Determina se deseja reproduzir o próximo arquivo
PrivateSubMMControl1_StatusUpdate()
IfMMControl1.Position=MMControl1.LengthThen
j = j 1
Ifj>i-1Entãoj=1
Chamarvcdplay
FimSe
Fim Sub
'Reproduz arquivo VCD
PrivadoSubvcdplay()
MMControl1.Command="parar"
MMControl1.Command="fechar"
MMControl1.FileName=drivecd&":/Mpegav/"&arquivos(j)
MMControl1.Command="abrir"
MMControl1.Command="reproduzir"
Fim Sub
O programa acima foi aprovado no Windows98 chinês e no VisualBasic6.0. ->