Исходники Delphi

Добро пожаловать на наш портал

На нашем сайте ежедневно публикуются десятки качественных и свежих материалов, которые Вы можете скачать абсолютно бесплатно. Рекомендуем Вам добавить Наш сайт в закладки, а также подписаться на RSS ленту, чтобы не пропускать интересных новостей.
Стартовая Избранное Главная Контакты Карта сайта

Меню

Не доступно

Не доступно

Опрос

Оцените мой сайт

Проголосовало: 118
Другие опросы

Главная » 2013 » Февраль » 17 » Функция управляющая CD-приводом
20:16
Функция управляющая CD-приводом
Создадим приложение с двумя кнопками. Нажатие первой из них будет выдвигать лоток привода, а второй - задвигать. 
Функция управляющая CD-приводом, определенна в модуле MMSystem, который нужно добавить в секцию Uses: 
Код

uses 
..., MMSystem; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
mciSendString('Set cdaudio door open wait', nil, 0, handle); 
end; 

procedureTForm1.Button2Click(Sender: TObject); 
begin 
mciSendString('Set cdaudio door closed wait', nill, 0, handle); 
end;


Функция Windows API mciSendString служит для посылки команд мультимедийным устройствам. Команда 'Set cdaudio door closed wait' приводит к выдвижению лотка устройства "аудио-CD", команда 'Set cdaudio door closed wait' - к его закрытию. 

Аналог: 
Код

  uses ..., MMSystem; 

procedure CloseEject(Drv:string;DoEject:boolean); 
var OpenParm:TMCI_OPEN_PARMS; 
SetParm:TMCI_Set_Parms; 
GenParm:TMCI_GENERIC_PARMS; 
ID:integer; 
begin 
openparm.lpstrDeviceType:=pchar('CDAudio'); 
openparm.lpstrElementName:=pchar(Drv); 
if mciSendCommand(0, MCI_OPEN,MCI_OPEN_TYPE or MCI_WAIT or MCI_OPEN_ELEMENT, LongInt(@OpenParm))=0 
then 
begin 
ID:=openparm.wDeviceID; 
if DoEject then 
mciSendCommand(ID,MCI_SET,MCI_WAIT or MCI_SET_DOOR_OPEN,LongInt(@SetParm)) 
else 
mciSendCommand(ID,MCI_SET,MCI_WAIT or MCI_SET_DOOR_CLOSED,LongInt(@SetParm)); 
mciSendCommand(ID,MCI_CLOSE,0,LongInt(@GenParm)); 
end; 
end; 

Обращение к процедуре: 
CloseEject('E:',true); //В данном случае 'E:' - это буква дисковода, true - означает открыть привод(false- закрыть дисковод) 

Получение списка CD/DVD-ROMS(не проверял):
Код

procedure CDROMsList(var DrvLst:TStringList); 
var buf:array[0..255] of char; 
tmp:string; 
begin 
if DrvLst=nil then DrvLst:=TStringList.Create; 
DrvLst.Clear; 
GetLogicalDriveStrings(256,buf); 
tmp:=''; 
for i:=0 to 254 do 
begin 
if buf[i]<>#0 then 
tmp:=tmp+buf[i] 
else 
begin 
if GetDriveType(pchar(tmp))=DRIVE_CDROM then 
DrvLst.Add(tmp); 
tmp:=''; 
if buf[i+1]=#0 then break; 
end; 
end; 
end;
Категория: Разное | Просмотров: 970 | Добавил: Reif | Теги: Дисковод | Рейтинг: 0.0/0
Всего комментариев: 0


Название блока

Здесь html код

Название блока

Здесь html код

Название блока

Здесь html код

Название блока

Здесь html код

 
Исходники Delphi
Сделать бесплатный сайт с uCoz |