Descobrindo a letra do drive de CD
Utilizando uma combinação da função GetLogicalDrives e o uso de ManagementObjects (WMI) podemos facilmente chegar a este resultado.
A função GetLogicalDrives nos devolve um array de strings com as letras de drives existentes na máquina. Para descobrirmos qual é o CD devemos utilizar os managementObjects.
Para fazer uso dos ManagementObjects devemos fazer references para o assembly System.Management.
Veja como fica uma função para devolver a letra do drive de CD:
Function AcharCD() As String
Dim drives As String()
Dim s As String
drives = System.IO.Directory.GetLogicalDrives()
For Each s In drives
Dim letra As String = s.Substring(0, 2)
Dim mg As New System.Management.ManagementObject("win32_logicaldisk.deviceid=""" & letra & """")
mg.Get()
If mg("drivetype").ToString = "5" Then
Return (letra)
End If
Next
Return ("")
End Function
No constructor do ManagementObject passamos a identificação do objeto, incluindo a letra do disco, claro. O método Get faz o vinculo com o ManagementObject. Após isso podemos acessar as propriedades do objeto, tal como DriveType, cujo valor 5 indica um CDROM.