Открытие CD-ROM-ов

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
MICHEY
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 03.09.2004 (Пт) 0:25
Откуда: Нижний Тагил

Открытие CD-ROM-ов

Сообщение MICHEY » 03.12.2004 (Пт) 22:03

Хочу написать программу для открытия CD-ROM. Но получается открыть только один - главный. Как определить число оптических приводов в системе и исходя из этого сделать выбор на открытие\закрытие того или иного привода.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 03.12.2004 (Пт) 22:40

а есть исходник открытия главного рома? выложи...
ХЎ

skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Сообщение skord » 04.12.2004 (Сб) 7:31

Короче, в Project\References подключи FSO и Windows\System32\wmp.dll (у тебя должен стоять Windows Media Player иначе не получится)

Код:

Dim fso As New FileSystemObject'подключаем FSO
Dim mp As New WindowsMediaPlayer'подключаем Media Player
Dim x, drive

Private Sub Command1_Click()
x = -1
For Each drive In fso.Drives'перебирем устрйства
If drive.DriveType = 4 Then'Если сидюк
x = x + 1
mp.cdromCollection.Item(x).eject'извлекаем
End If
Next
End Sub




Этот код открывает ВСЕ сд-ромы. Ты можешь подобрать номер своих и извлекать каждай по отдельности.

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 04.12.2004 (Сб) 20:04

skord писал(а):Короче, в Project\References подключи FSO и Windows\System32\wmp.dll (у тебя должен стоять Windows Media Player иначе не получится)

Код:

Dim fso As New FileSystemObject'подключаем FSO
Dim mp As New WindowsMediaPlayer'подключаем Media Player
Dim x, drive

Private Sub Command1_Click()
x = -1
For Each drive In fso.Drives'перебирем устрйства
If drive.DriveType = 4 Then'Если сидюк
x = x + 1
mp.cdromCollection.Item(x).eject'извлекаем
End If
Next
End Sub


Этот код открывает ВСЕ сд-ромы. Ты можешь подобрать номер своих и извлекать каждай по отдельности.

на форуме был какой-то пример, где при вызове соотв. api функции можно было открывать сдром по букве диска (напр. D или E).
просто с программой надо будет таскать библиотеки WMP (а она не одна!) и scrrun.dll.

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 04.12.2004 (Сб) 21:00

Вот сей код я использую в своем звуковом двужке, я его немножко для тебя оптимизировал, там все ясно.

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 04.12.2004 (Сб) 21:04

Код: Выделить всё
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String,
ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim Status As Integer

Использование:
Код: Выделить всё
Status = mciSendString("Set CDAudio Door Open Wait", 0&, 0, 0)
Status = mciSendString("Set CDAudio Door Closed Wait", 0&, 0, 0)
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 04.12.2004 (Сб) 21:18

Этот код открывает непонятно какой cd-rom. Не указанный, а установленный по умолчанию.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 16

    TopList