Něco málo o tom, jak vysunout a zasunout mechaniku. Plus ještě jak zjistit počet mechanick v PC a jejich písmena.
Já osobně znám dvě metody. První metoda je pomocí funkce mciSendString. Je to funkce využívající se například při ovládání multimedií. A umožňuje právě ono otevření mechaniky. Otevírá ale pouze primární mechaniku, tedy tu první. Nejdříve si tuto funkci musíme deklarovat. A potom ji zavolat a dát ji potřebné parametry. Tato funkce má rozdílné parametry pokud ji voláme pro zavření nebo pro otevření mechaniky. Celé to pak může vypadat třeba takto:
Private Declare Function mciSendString Lib _
"winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, ByVal _
uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Sub Command1_Click() 'procedura otevření
mciSendString "Set CDAudio Door Open Wait", _
0&, 0&, 0&
End Sub
Private Sub Command2_Click() 'procedura zavření
Print mciSendString("Set CDAudio Door Closed Wait", _
0&, 0&, 0&)
End Sub
Druhá metoda je lepší, jelikož si můžeme volit, kterou mechaniku chceme otevřít. A
to pomocí externího multimediálního přehrávače WMP. Takže si vlezeme do nabídky
komponent a vybereme si WindowsMediaPlayer. Na závěr tedy zdroják.
Private Sub Command1_Click()
WindowsMediaPlayer1.cdromCollection.Item(0).eject
End Sub
Jak vidíte, není to nic složitého. Tato metoda navíc funguje tak, že pokud je mechanika zavřená, tak ji otevře a pokud je otevřená, tak ji zavře.
Ještě něco. Tady je návod, jak zjistíte počet mechanik.
Print WindowsMediaPlayer1.cdromCollection.Count
Pak můžete otevřít třeba všechny, aniž by vám program hodil chybu a nezapomeňte, že jako index se počítá i nula, ale u počtu mechanik tomu tak není.
Private Sub Command1_Click()
a = WindowsMediaPlayer1.cdromCollection.Count
For i = 0 To (a - 1)
WindowsMediaPlayer1.cdromCollection.Item(i).eject
Next i
End Sub
Ještě návod jak zjistit, jaké mechaniky jsou v PC:
Private Sub Command1_Click()
a = WindowsMediaPlayer1.cdromCollection.Count
For i = 0 To (a - 1)
WindowsMediaPlayer1.cdromCollection.Item(i).eject
Next i
End Sub