![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 12.02.2008
Сообщений: 14
|
![]()
Всем привет! Я нашел вот такой код
#include <mmsystem.h> #include <stdio.h> #pragma comment(lib,"winmm.lib") /* Команды */ char * CdCmdSet = "set"; char * CdCmdStatus = "status"; char * CdCmdPlay = "play"; char * CdCmdPause = "pause"; char * CdCmdStop = "stop"; char * CdCmdResume = "resume"; /* Флаги команд */ char * CdCmdFlagOpen = "door open"; char * CdCmdFlagClose = "door closed"; char * CdCmdCurTrack = "current track"; char * CdCmdCurMode = "mode"; char * CdCmdFlagEmpty = ""; /* Флаги выполнения */ char * CdFlagWait = "wait"; char * CdFlagEmpty = ""; /* Буфер, в котором будем создавать команды */ char CdCommandBuffer[256]; /* Создание команды без указания имени CD-ROM'а */ char * CreateCdCommand(char * pBuffer, char * pCommand, char * pCmdFlags, char * pFlags) { sprintf(pBuffer,"%s cdaudio %s %s",pCommand,pCmdFlags,pFlags); return pBuffer; } /* Создание команды с указанием имени CD-ROM'а */ char * CreateCdCommandEx(char * pBuffer, char DriveLetter, char * pCommand, char * pCmdFlags, char * pFlags) { sprintf(pBuffer,"%s cdaudio!%c: %s %s",pCommand,DriveLetter,pCmdFlags, pFlags); return pBuffer; } Теперь, используя вспомогательные функции и переменные, отдавать команды управления CD-ROM'ом не просто, а очень просто. Открыть CD-ROM, ожидая выполнения этой команды: mciSendStringA(CreateCdCommand(CdCo mmandBuffer,CdCmdSet,CdCmdFlagOpen, CdFlagWait), NULL, 0, INVALID_HANDLE_VALUE); Закрыть CD_ROM, ожидая выполнения этой команды: mciSendStringA(CreateCdCommand(CdCo mmandBuffer,CdCmdSet,CdCmdFlagClose ,CdFlagWait), NULL, 0, INVALID_HANDLE_VALUE); Начать воспроизведение без ожидания выполнения: mciSendStringA(CreateCdCommand(CdCo mmandBuffer,CdCmdPlay,CdCmdFlagEmpt y,CdFlagEmpty), NULL, 0, INVALID_HANDLE_VALUE); Приостановить воспроизведение(пауза) без ожидания выполнения: mciSendStringA(CreateCdCommand(CdCo mmandBuffer,CdCmdPause,CdCmdFlagEmp ty,CdFlagEmpty), NULL, 0, INVALID_HANDLE_VALUE); Возобновить воспроизведение без ожидания выполнения: mciSendStringA(CreateCdCommand(CdCo mmandBuffer,CdCmdResume,CdCmdFlagEm pty,CdFlagEmpty), NULL, 0, INVALID_HANDLE_VALUE); Остановить воспроизведение(стоп) без ожидания выполнения: mciSendStringA(CreateCdCommand(CdCo mmandBuffer,CdCmdStop,CdCmdFlagEmpt y,CdFlagEmpty), NULL, 0, INVALID_HANDLE_VALUE); Получить номер текущей дорожки, ожидая выполнения этой команды: mciSendStringA(CreateCdCommand(CdCo mmandBuffer,CdCmdStatus,CdCmdCurTra ck,CdFlagWait), CdCommandBuffer, 255, INVALID_HANDLE_VALUE); ShowMessage("Current track is "+AnsiString(CdCommandBuffer)); Получить текущее состояние, ожидая выполнения этой команды: mciSendStringA(CreateCdCommand(CdCo mmandBuffer,CdCmdStatus,CdCmdCurMod e,CdFlagWait), CdCommandBuffer, 255, INVALID_HANDLE_VALUE); ShowMessage("Current mode is \'"+AnsiString(CdCommandBuffer)+"\' "); Если в системе присутствует несколько приводов CD, то для задания конкретного привода вместо функции CreateCdCommand следует использовать CreateCdCommandEx запустил но как сделать сюда хотяб функцию перехода на сл трек? где вообще взять как можно больше инфы о том как программно управлять CD ROMom например заблокировать его
Экспериментатор должен быть достаточно ленив, чтоб не копиться в мелочах
![]() |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 12.02.2008
Сообщений: 14
|
![]()
Короче если кто знает то подскажите как на С++ управлять сидиромом хочу узнать как можно больше по этой теме
Экспериментатор должен быть достаточно ленив, чтоб не копиться в мелочах
![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
![]()
Знаю только как закрывать и открывать СD_ROM
Код:
The Revolution is Now!
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 25.03.2008
Сообщений: 159
|
![]()
А зачем такой большой код??? можно же реализовать открытие и закрытие дисковода в гораздо меньшем коде, достаточно будет нажеть на кнопку.
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
![]()
Этот код будет работать при наличии двух и больше CD-ROM -ов.
The Revolution is Now!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Управление громкостью | Jupiter | Общие вопросы Delphi | 2 | 29.06.2008 15:43 |
Управление голосом | prizrak1390 | Общие вопросы Delphi | 2 | 24.06.2008 21:04 |
Управление приложениями | voron29 | Общие вопросы Delphi | 1 | 14.03.2008 12:38 |
Управление Монитором | _XspeC_ | Общие вопросы Delphi | 3 | 26.03.2007 19:28 |