Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/17: Рейтинг темы: голосов - 17, средняя оценка - 4.76
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
1

открытие cs-rom'a в c++

01.02.2011, 14:45. Просмотров 3355. Ответов 11
Метки нет (Все метки)

никак не могу найти исходник на C++ , который бы открывал и закрывал его
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2011, 14:45
Ответы с готовыми решениями:

пропал автозапуск с CD-ROMa
Здравствуйте! Установил себе 7. Начинаю ставить диски с играми в CD-ROM а автозагрузки нет... не...

Не работает мышь hama roma
случилась такая проблема: однажды мышь просто перестала работать после перезагрузки компа. дрова...

Переустановка Windows без CD-ROMa.
У меня полетела винда на ноуте Acer Aspire One A150-Bk без CD-ROMa. Как ее переустановить?

не могу загрузить ОС не с веника,не с СD-roma
Всем привет, в общем дело бы так, привез я свой комп(он помощнее) к сестре, и решил переставить...

11
Freelance
Эксперт С++
2871 / 1806 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
01.02.2011, 15:00 2
Лучший ответ Сообщение было отмечено как решение

Решение

Skip, Плохо искали
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <Windows.h>
#include <mmsystem.h>
#include <tchar.h>
 
#pragma comment(lib, "WinMM.Lib")
using namespace std;
 
int main()
{
    int tra;
 
    cout << "Select variant: " << endl;
    cout << "1. Open CD" << endl;
    cout << "2. Close CD" << endl;
    cin >> tra;
 
    switch (tra)
    {
    case 1: mciSendString(_T("Set cdaudio door open wait"), NULL, 0, NULL); //Открытие привода CD-ROM
        break;
    case 2: mciSendString(_T("Set cdaudio door closed wait"), NULL, 0, NULL); //Закрытие привода CD-ROM
        break;
    default:
        cout << "error\n";
    }
 
    return 0;
}
5
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
01.02.2011, 15:38  [ТС] 3
все нашел ошибку
1
112 / 22 / 3
Регистрация: 20.11.2010
Сообщений: 1,294
02.02.2011, 15:10 4
разобрался. не увидел биб-ку #pragma comment(lib, "WinMM.Lib")
ато впадло тянутся открывать
0
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 581
15.05.2011, 22:39 5
Почему не работает этот код? Компилится, но при выборе соответствующего действия ничего не происходит (ни открытие, ни закрытие). Гуглил, ничего другого не нашел. VS2010, Win7 x64

Пробовал еще
Код
  mciSendString("open cdaudio!F: alias driveX", NULL, 0, 0);
mciSendString("Set cdaudio door open wait", NULL, 0, 0);
0
50 / 50 / 20
Регистрация: 24.10.2010
Сообщений: 131
15.05.2011, 23:25 6
А у меня работает код asics! Спасибо. Не то что было нужно, было интересно было попробовать.
0
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 581
16.05.2011, 12:35 7
up, все также не работает =\
0
Jesus loves me
Эксперт С++
5096 / 3110 / 351
Регистрация: 12.12.2009
Сообщений: 7,845
Записей в блоге: 2
16.05.2011, 12:45 8
Помнится когда мне понадобился пример кода открытия/закрытия CD-ROM'а, я его нагуглил в течении нескольких минут.
Не вижу причины не пользоваться поиском!
0
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 581
19.05.2011, 11:35 9
Цитата Сообщение от Nubik756 Посмотреть сообщение
Гуглил, ничего другого не нашел.
т.е. везде тоже самое, что в этом примере.

Может быть дело в наличии виртуального привода (Daemon tools)? Но вроде же код из сообщения 5 должен это решать, если в этом проблема.
 Комментарий модератора 
Nubik756, хватит поднимать свою тему подобными фразами.


Добавлено через 17 часов 1 минуту
up, неужели у меня одного CD-ROM не реагирует на вышенаписанный код?)

Добавлено через 23 часа 35 минут
upupup

Добавлено через 22 часа 25 минут
upupup
0
Jesus loves me
Эксперт С++
5096 / 3110 / 351
Регистрация: 12.12.2009
Сообщений: 7,845
Записей в блоге: 2
19.05.2011, 16:55 10
Блин Nubik756, ты гуглом пользоваться не умеешь. По ссылке на первой странице:
C++
1
2
3
err=mciSendString("open h: type cdaudio alias cd",&buf, size,null);
 
err=mciSendString("set cd door open wait",&buf, size,null);
где <h:> соответсвенно буква привода, если несколько приводов, юзай нужный.

Добавлено через 22 минуты
Попробовал - код asics у меня тоже не пошел (возможно потому что в системе 2 привода), а этот работает.
Nubik756, если у тебя и этот работать не будет, не надо неделю апать тему, поищи!!!
0
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 581
19.05.2011, 17:38 11
А кто такой err?0o

C++
1
2
mciSendString("open f: type cdaudio alias cd", NULL, 0, NULL);
mciSendString("set cd door open wait", NULL, 0, NULL);
Работает.
Но почему-то не закрывает.
C++
1
2
mciSendString("closed f: type cdaudio alias cd", NULL, 0, NULL);
mciSendString("set cd  door closed wait", NULL, 0, NULL);
Но нашел какой-то страшный и непонятный код (функцию), который работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//Open or Close CD Drive
//cDrive is Drive Letter to Open, or 0x01 for 'Default' drive
//Examples:
//CD_OpenCloseDrive(TRUE, 'G');  //Open CD Door for Drive G:
//CD_OpenCloseDrive(FALSE, 'G'); //Close CD Door for Drive G:
//CD_OpenCloseDrive(TRUE, 1);    //Open First Logical CD Door
 
void CD_OpenCloseDrive(BOOL bOpenDrive, TCHAR cDrive)
{
 MCI_OPEN_PARMS op;
 MCI_STATUS_PARMS st;
 DWORD flags;
 
 TCHAR szDriveName[4];
 strcpy(szDriveName, "X:");
 
 ::ZeroMemory(&op, sizeof(MCI_OPEN_PARMS));
 op.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO;
 
 if(cDrive > 1)
 {
  szDriveName[0] = cDrive;
  op.lpstrElementName = szDriveName;
  flags = MCI_OPEN_TYPE
        | MCI_OPEN_TYPE_ID
        | MCI_OPEN_ELEMENT
        | MCI_OPEN_SHAREABLE;
 }
 else flags = MCI_OPEN_TYPE
            | MCI_OPEN_TYPE_ID
            | MCI_OPEN_SHAREABLE;
 
 if (!mciSendCommand(0,MCI_OPEN,flags,(unsigned long)&op))
 {
  st.dwItem = MCI_STATUS_READY;
 
  if(bOpenDrive)
   mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0);
  else
   mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0);
 
  mciSendCommand(op.wDeviceID,MCI_CLOSE,MCI_WAIT,0);
 }
}
0
-=ЮрА=-
20.07.2012, 13:06     открытие cs-rom'a в c++
  #12

Не по теме:

Мой старенький проектик выталкивателя для лотков всех ROM-ов системы (есть трей, возможность получения справки по файловой системе тома, поддержка контекстного меню (правая клавиша мыши)) Ошибка при открытие CD-ROW в коде

Может кому пригодится...

0
20.07.2012, 13:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2012, 13:06
Привет! Вот еще темы с ответами:

Нужен бекап NVRAM gsmart roma r2 plus
Нужен бекап NVRAM gsmart roma r2 plus. Проблема в том что после сброса отказался работать тач....

Установка Windows XP на ноутбук Asus без DVD-ROMa
Не могу установить винду на ноут - предустановлена FreeDos? сделал загрузочную флешку, биос ее...

Очень долгая проверка DVD-ROMa при загрузке
Добрый день! Загрузка Windows 7 приостанавливается на окне приветствия до тех пор пока DVD-ROM не...

CppWEbBrowser. Запрет на открытие нового окна, и открытие его в том же окне
Создаю программку-браузер. Столкнулся с такой проблемой, когда нажимаю на определенную ссылку ...

Самопроизвольное открытие Хрома, открытие новых вкладок с рекламой
Здравствуйте, слезно прошу о помощи. Суть проблемы: открываются новые вкладки с рекламой в браузере...

Авто-открытие установки вирусных ПО, авто-открытие рекламы в баузере
Здавствуйте. Скачивал игру с торрента, от R.G. MECHANICS, вместе с установкой игры, в тот же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.