mrjbom
@mrjbom

Как открыть и закрыть DVD-RW дисковод?

Написал вот такой код
#include <iostream>
#include <windows.h>
#include <shellapi.h>
#include <mmsystem.h>

using namespace std;

int main()
{
	MCI_OPEN_PARMS OpenParm;
	MCI_SET_PARMS SetParm;
	MCIDEVICEID dID;
	OpenParm.lpstrDeviceType=L"CDAudio";
	mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE, (DWORD_PTR)&OpenParm);
	dID = OpenParm.wDeviceID;
	mciSendCommand(dID, MCI_SET, MCI_SET_DOOR_OPEN, (DWORD_PTR)&SetParm);
	Sleep(3000);
	mciSendCommand(dID, MCI_SET, MCI_SET_DOOR_CLOSED, (DWORD_PTR)&SetParm);
	mciSendCommand(dID, MCI_CLOSE, MCI_NOTIFY, (DWORD_PTR)&SetParm);
	return 0;
}

Но проблема в том что он пытается работать с CD(там модем который на это реагирует), а у меня DVD-RW.
5b1974aa39ff9407201695.png
Что указать вместо CDAudio?
  • Вопрос задан
  • 605 просмотров
Решения вопроса 1
@alexalexes
Нужно привязываться к устройству не только по его типу, но и по букве диска.
Открытие:
mciSendString("open f: type cdaudio alias cd", NULL, 0, NULL);
mciSendString("set cd door open wait", NULL, 0, NULL);

Закрытие:
mciSendString("open f: type cdaudio alias cd", NULL, 0, NULL);
mciSendString("set cd door closed wait", NULL, 0, NULL);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Sumor
Попробуйте
OpenParm.lpstrDeviceType = L"F:";
OpenParm.lpstrDeviceType=L"CDAudio";
mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, (DWORD_PTR)&OpenParm);
Ответ написан
Комментировать
mrjbom
@mrjbom Автор вопроса
5b1bec46c01a8655629133.png
Сей код вызывает вылет приложения после запуска.
Что не так?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы