Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2006, 14:35   #1
vicvtor
Иркутянин!!!
Пользователь
 
Аватар для vicvtor
 
Регистрация: 01.11.2006
Сообщений: 83
Вопрос Диск в CD-rom

как можно проверить, есть ли диск в дисководе. если есть, то является ли он Cd_audio диском?
vicvtor вне форума Ответить с цитированием
Старый 06.11.2006, 14:47   #2
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Код:
var
OpenParm: TMCIJDpen_Parms;
GenParm: TMCI_Generic_Parms;
SetParm: TMCI_Set_Parms;
DI : Cardinal;
OK: boolean;
begin
OK:=false;
OpenParm.lpstrDeviceType := 'CDAudio';
repeat
mciSendCommand(0, mci_Open, mci_Open_Type, Longint(QOpenParm));
DI := OpenParm.wDevicelD;
mciSendCommand(DI, mci_Set, mci_Set_Door_Open, Longint(@SetParm));
mciSendCommand(DI, mci_Set, mci_Set_Door__Closed, LQngint (@SetParm)) ;
mciSendCoitrmand(DI, mci_Close, mci_Notify, Longint (@GenParm) );
sleep(5000);
until OK;
end;
Это - прикол из книги "Delphi глазами Хакера". пример не подходящий, но из него можно выбрать что-нибудь полезное.
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 06.11.2006, 15:00   #3
vicvtor
Иркутянин!!!
Пользователь
 
Аватар для vicvtor
 
Регистрация: 01.11.2006
Сообщений: 83
По умолчанию

а по точнее и получше ничего нет?
vicvtor вне форума Ответить с цитированием
Старый 06.11.2006, 16:44   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Код:
function IsAudioCD(Drive : char) : bool;
var
        DrivePath : string;
        MaximumComponentLength : DWORD;
        FileSystemFlags : DWORD;
        VolumeName : string;
Begin
        sult := false;
        DrivePath := Drive + ':\';
        if GetDriveType(PChar(DrivePath)) <> DRIVE_CDROM then 
                exit;
        SetLength(VolumeName, 64);
        GetVolumeInformation(PChar(DrivePath),PChar(VolumeName),
        Length(VolumeName),nil,MaximumComponentLength,FileSystemFlags,nil,0);
        if lStrCmp(PChar(VolumeName),'Audio CD') = 0 then
                result := true;
end;
Код:
function PlayAudioCD(Drive : char) : bool;
var
        mp : TMediaPlayer;
begin
        result := false;
        Application.ProcessMessages;
        if not IsAudioCD(Drive) then
                exit;
        mp := TMediaPlayer.Create(nil);
        mp.Visible := false;
        mp.Parent := Application.MainForm;
        mp.Shareable := true;
        mp.DeviceType := dtCDAudio;
        mp.FileName := Drive + ':';
        mp.Shareable := true;
        mp.Open;
        Application.ProcessMessages;
        mp.Play;
        Application.ProcessMessages;
        mp.Close;
        Application.ProcessMessages;
        mp.free;
        result := true;
end;
rpy3uH вне форума Ответить с цитированием
Старый 06.11.2006, 18:12   #5
vicvtor
Иркутянин!!!
Пользователь
 
Аватар для vicvtor
 
Регистрация: 01.11.2006
Сообщений: 83
По умолчанию

спасибо большое
vicvtor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сетевой диск Nic-x Win Api 4 07.02.2008 15:05
Не открывает диск Д... Filonenko Свободное общение 7 25.11.2007 14:44
CD-ROM диск не отдает Viteef Свободное общение 4 20.10.2007 07:55
Как записать на диск delphin100 Общие вопросы Delphi 2 14.10.2007 22:55
жесткий диск Elm0 Компьютерное железо 10 01.06.2007 10:00