Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как програмно узнать открыт CD-ROM или закрыт


random ©   (2004-04-07 08:34:00) 

Скажите, как програмно узнать открыт CD-ROM или закрыт? Желательно с примером. (И укажите что там uses). Заранее благодарен.


juiceman   (2004-04-17 03:53:00) [1]

... и всегда мне было интересно "зачем это знать" ???


juiceman   (2004-04-17 03:52:00) [2]

Видел несколько похожих топов и все они сходились к "никак".


ssk   (2004-04-16 15:50:00) [3]

>maxz

это при наличии диска в приводе. а без диска?


maxz   (2004-04-16 15:08:00) [4]

Можно отслеживать открытие/закрытие сидюка:

type
 TForm1 = class(TForm)
   Button1: TButton;
 private
   { Private declarations }
   procedure WMDeviceChange(var Message: TMessage);
     message WM_DEVICECHANGE;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

const DBT_DEVICEARRIVAL = $8000;
const DBT_DEVICEQUERYREMOVE = $8001;
const DBT_DEVICEQUERYREMOVEFAILED = $8002;
const DBT_DEVICEREMOVEPENDING = $8003;
const DBT_DEVICEREMOVECOMPLETE = $8004;
const DBT_DEVICETYPESPECIFIC = $8005;
const DBT_CONFIGCHANGED = $0018;

procedure TForm1.WMDeviceChange(var Message: TMessage);
var
 s : string;
begin
{Do Something here}
 case Message.wParam of
   DBT_DEVICEARRIVAL :
     s := 'A device has been inserted and is now available';
   DBT_DEVICEQUERYREMOVE: begin
     s := 'Permission to remove a device is requested';
     ShowMessage(s);
    {True grants premission}
     Message.Result := integer(true);
     exit;
   end;
   DBT_DEVICEQUERYREMOVEFAILED :
     s := 'Request to remove a device has been canceled';
   DBT_DEVICEREMOVEPENDING :
     s := 'Device is about to be removed';
   DBT_DEVICEREMOVECOMPLETE :
     s := 'Device has been removed';
   DBT_DEVICETYPESPECIFIC :
     s := 'Device-specific event';
   DBT_CONFIGCHANGED :
     s:= 'Current configuration has changed'
   else s := 'Unknown Device Message';
 end;
 ShowMessage(s);
 inherited;
end;


Wiz@rd   (2004-04-15 18:00:00) [5]

Если тебе нужно знать открыть щас стдюк или закрыть - то пробуй так - если не открыть значит закрыть и наборот - по-моему mciSendCommand возвращает что-то если не удалось выполнить команду или пиши свой дров - хотя вряд ли поможет - cd-rom по-моему не даёт информацию о состоянии лотка


ssk   (2004-04-15 12:40:00) [6]

никак


(AD)acid   (2004-04-15 12:17:00) [7]

Есть функция GetDriveInformation или что-то в этом роде
она возвращает кроме остальных параметров и файловую систеиу
диска анализируй её

тип устройства можно узнать функцией GetDriveType

это я где-то в Faq видел и сам проверял

Смотри SDK GetDrive*


Наверх

Титульная страница Поиск, карта сайта Написать письмо