Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.68
Skip
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
01.02.2011, 14:45     открытие cs-rom'a в c++ #1
никак не могу найти исходник на C++ , который бы открывал и закрывал его
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2011, 14:45     открытие cs-rom'a в c++
Посмотрите здесь:

cd-rom C++
C++ Драйвер для чтения CD-ROM
C++ Открытия CD-ROM
C++ Вопрос про Delphi/C++ & CD-ROM.
Выполнение Open/Close CD ROM в цикле. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
01.02.2011, 15:00     открытие cs-rom'a в c++ #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;
}
Skip
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
01.02.2011, 15:38  [ТС]     открытие cs-rom'a в c++ #3
все нашел ошибку
+c+
112 / 22 / 3
Регистрация: 20.11.2010
Сообщений: 1,294
02.02.2011, 15:10     открытие cs-rom'a в c++ #4
разобрался. не увидел биб-ку #pragma comment(lib, "WinMM.Lib")
ато впадло тянутся открывать
AlexP11223
36 / 37 / 4
Регистрация: 20.04.2011
Сообщений: 288
15.05.2011, 22:39     открытие cs-rom'a в c++ #5
Почему не работает этот код? Компилится, но при выборе соответствующего действия ничего не происходит (ни открытие, ни закрытие). Гуглил, ничего другого не нашел. VS2010, Win7 x64

Пробовал еще
Код
  mciSendString("open cdaudio!F: alias driveX", NULL, 0, 0);
mciSendString("Set cdaudio door open wait", NULL, 0, 0);
garkeP91
49 / 49 / 5
Регистрация: 24.10.2010
Сообщений: 131
15.05.2011, 23:25     открытие cs-rom'a в c++ #6
А у меня работает код asics! Спасибо. Не то что было нужно, было интересно было попробовать.
AlexP11223
36 / 37 / 4
Регистрация: 20.04.2011
Сообщений: 288
16.05.2011, 12:35     открытие cs-rom'a в c++ #7
up, все также не работает =\
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
16.05.2011, 12:45     открытие cs-rom'a в c++ #8
Помнится когда мне понадобился пример кода открытия/закрытия CD-ROM'а, я его нагуглил в течении нескольких минут.
Не вижу причины не пользоваться поиском!
AlexP11223
36 / 37 / 4
Регистрация: 20.04.2011
Сообщений: 288
19.05.2011, 11:35     открытие cs-rom'a в c++ #9
Цитата Сообщение от Nubik756 Посмотреть сообщение
Гуглил, ничего другого не нашел.
т.е. везде тоже самое, что в этом примере.

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


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

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

Добавлено через 22 часа 25 минут
upupup
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
19.05.2011, 16:55     открытие cs-rom'a в c++ #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, если у тебя и этот работать не будет, не надо неделю апать тему, поищи!!!
AlexP11223
36 / 37 / 4
Регистрация: 20.04.2011
Сообщений: 288
19.05.2011, 17:38     открытие cs-rom'a в c++ #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);
 }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2012, 13:06     открытие cs-rom'a в c++
Еще ссылки по теме:

Открытие Изображения в с++ C++
C++ Открытие файла на C++
Открытие/закрытие CD-ROM C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
20.07.2012, 13:06     открытие cs-rom'a в c++
  #12

Не по теме:

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

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

Yandex
Объявления
20.07.2012, 13:06     открытие cs-rom'a в c++
Ответ Создать тему
Опции темы

Текущее время: 08:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru