Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Как програмно узнать открыт CD-ROM или закрыт   Найти похожие ветки 

 
random ©   (2004-04-07 08:34) [0]

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


 
(AD)acid ©   (2004-04-15 12:17) [1]

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

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

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

Смотри SDK GetDrive*


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

никак


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

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


 
maxz ©   (2004-04-16 15:08) [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;


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

>maxz

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


 
juiceman ©   (2004-04-17 03:52) [6]

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


 
juiceman ©   (2004-04-17 03:53) [7]

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



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
14-1083592275
Piter
2004-05-03 17:51
2004.05.23
Система 2dl.ru


6-1081232502
MetalFan
2004-04-06 10:21
2004.05.23
узнать сетевое имя текущего компьютера...


1-1083926326
som
2004-05-07 14:38
2004.05.23
Import данных с MS Excel


11-1071742891
BaDeVlad
2003-12-18 13:21
2004.05.23
Как в RichEdit изменить WordWrap?


1-1084115058
Sonic_gd
2004-05-09 19:04
2004.05.23
Калькулятор со степенью