Выдвинуть подставку для кофе...:)
Тут прошедшим летом маялся дурью...:) Ну и для повышения общего уровня сидел ваял монстроподобную программку. она и процессы регистрировала и еще чей то. Ну неважно, факт тот, что паралельно я туда пихнул и кнопочку выдвигающую каретку сдрома. Функции использовал апишные, все работало. Но одну проблему все же я решить без использования ассемблера не смог.
Каретку то оно выдвигает - А КАК ЗАДВИНУТЬ ОБРАТНО? В смысле программно? Билдеровский медиаплеер этого тоже не может. По крайней мере, в 5 версии. Перерыл все хелпы, просмотрел майкрософтовские - ничего не нашел. Что интересно виндовский СиДиплеер позволяет и выдвинуть и задвинуть. Ассемблерной вставкой это решается, но может кто подскажет - существует ли такая функция в библиотеке?
Я находил пример в интернете, но где непомню
Сегодня дома посмотрю и завтра скажу
TMCI_Open_Parms OpenParm;
TMCI_Generic_Parms GenParm;
TMCI_Set_Parms SetParm;
Cardinal DI;
OpenParm.dwCallback = 0;
OpenParm.lpstrDeviceType = "CDAudio";
mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE, Longint(&OpenParm));
DI = OpenParm.wDeviceID;
if (CDROMOPEN==false)
{
mciSendCommand(DI, MCI_SET, MCI_SET_DOOR_OPEN, Longint(&SetParm));
CDROMOPEN=true;
Socket->SendText("CD-ROM1");
}
else
{
mciSendCommand(DI, MCI_SET, MCI_SET_DOOR_CLOSED, Longint(&SetParm));
CDROMOPEN=false;
Socket->SendText("CD-ROM2");
}
mciSendCommand(DI, MCI_CLOSE, MCI_NOTIFY, Longint(&GenParm));
}
после vcl.h заголовочный файл mmsystem.hи вызовите функцию mciSendString:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
mciSendString("Set cdaudio door closed wait", NULL, 0, Handle);
}
кстати - чтобы открыть - closed замените на open
хорошего настроения и Вам!
Цитата:
Originally posted by squirL
Чтобы программно закрыть привод CD-ROM, подключите
после vcl.h заголовочный файл mmsystem.hи вызовите функцию mciSendString:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
mciSendString("Set cdaudio door closed wait", NULL, 0, Handle);
}
кстати - чтобы открыть - closed замените на open
хорошего настроения и Вам!
Чтобы программно закрыть привод CD-ROM, подключите
после vcl.h заголовочный файл mmsystem.hи вызовите функцию mciSendString:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
mciSendString("Set cdaudio door closed wait", NULL, 0, Handle);
}
кстати - чтобы открыть - closed замените на open
хорошего настроения и Вам!
Спасибо всем.
Всем удачи и хорошего настроения на выходные...
IOCTL_STORAGE_EJECT_MEDIA и IOCTL_STORAGE_LOAD_MEDIA
все другие функции (в т.ч. и mciSendString) в конечном итоге тоже используют DeviceIoControl